일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jupyter
- 다트 언어
- HTML
- c# 추상 클래스
- Algorithm
- C# delegate
- 깃
- C++
- c#
- github
- Houdini
- 도커
- C언어 포인터
- 플러터
- dart 언어
- 유니티
- gitlab
- jupyter lab
- c# winform
- c# 윈폼
- c언어
- docker
- 구조체
- 포인터
- Data Structure
- Flutter
- Unity
- git
- vim
- Python
- Today
- Total
nomad-programmer
[DevOps/Docker] Docker에서 'Hello World' 본문
설치한 Docker가 올바르게 작동하는지를 확인하기 위해 Docker 컨테이너를 작성하고 콘솔상에 "Hello World" 라는 문자를 출력해보자.
Docker 컨테이너를 작성 및 실행할 때는 docker container run 명령을 사용한다. 이 명령의 구문은 다음과 같다.
docker container run <Docker 이미지명> <실행할 명령>
- docker container run : 컨테이너를 작성 및 실행
- <Docker 이미지명> : 바탕이 되는 Docker 이미지
- <실행할 명령> : 컨테이너 안에서 실행할 명령
예를 들어 Ubuntu의 이미지를 바탕으로 Docker 컨테이너를 작성 및 실행한 후 작성한 컨테이너 안에서 "Hello World" 를 표시하고 싶을 때는 다음의 명령을 실행한다.
docker container run ubuntu:latest /bin/echo 'Hello World'
위의 명령을 실행하면 Docker 컨테이너의 바탕이 되는 Ubuntu의 Docker 이미지가 로컬 환경에 있는지 확인한다. 만일 로컬 환경에 없다면 Docker 리포지토리에서 Docker 이미지를 다운로드한다.
실행 결과 중에 있는 'ubuntu:latest'는 Ubuntu의 최신 버전의 이미지를 취득한다는 뜻이다. 다운로드가 완료되면 컨테이너가 시작되고, Linux의 echo 명령이 실행된다.
또한 첫 번째는 Docker 이미지의 다운로드에 시간이 소요되지만, 두 번째부터는 로컬 환경에 다운로드된 Docker 이미지를 바탕으로 Docker 컨테이너를 시작한다. 해당 명령을 다시 한번 실행해보면 처음보다 빠른 속도로 컨테이너가 시작되는 것을 알 수 있다.
로컬 환경에 다운로드된 Docker 이미지를 로컬 캐시라고 한다.
Docker 버전 확인 (docker version)
설치한 Docker 버전을 확인하려면 docker version 명령을 사용한다. docker version 명령을 실행하면 Docker의 버전이나 Go 언어의 버전, OS, 아키텍처를 확인할 수 있다.
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4534c46d9d
Built: Wed Sep 16 17:02:52 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4634c46d9d
Built: Wed Sep 16 17:01:20 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e557d01810a393d5d25a3655dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9255a3303feef5b3559f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3363
Docker는 클라이언트/서버 아키텍처를 채택하고 있어서 Docker 클라이언트와 Docker 서버가 Remote API를 경유하여 연결되어 있다. 따라서 docker 명령은 서버로 보내져 처리된다.
Docker 실행 환경 확인 (docker system info)
docker system info 명령을 실행하면 Docker 실행 환경의 상세 설정이 표시된다.
Client:
Debug Mode: false
Server:
Containers: 11 <--- 컨테이너 개수
Running: 0
Paused: 0
Stopped: 11
Images: 2
Server Version: 19.03.13 <--- Docker 버전
Storage Driver: overlay2 <--- 스토리지 드라이버 종류
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 8fba4e9a7d05325a393d5d25a3621dc101981175
runc version: dc920812653feef5b3839f4323d9beb36df0a9dd
init version: fec3532
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.4.0-54-generic
Operating System: Ubuntu 20.04.1 LTS
OSType: linux <--- OS 종류
Architecture: x86_64 <--- 아키텍처
CPUs: 12
Total Memory: 62.73GiB
Name: scii-ubuntu
ID: K5TA:DEP8:90AB:3KWA:Q5AB:XSD3:DBAT:HKLO:LZ90:WOIU:GZTY:5Y5L
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Docker 디스크 이용 상황 (docker system df)
docker system df 명령을 실행하면 Docker가 사용하고 있는 디스크의 이용 상황이 표시된다.
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 2 72.89MB 0B (0%)
Containers 11 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
상세 내용을 확인할 때는 -v 옵션을 지정한다.
'DevOps > Docker' 카테고리의 다른 글
[DevOps/Docker] Docker Image Commands (push, pull, ls, inspect, tag, search, rm, prune, login, logout) & DCT (0) | 2020.11.19 |
---|---|
[DevOps/Docker] 도커로 Nginx 웹 서버 구동하기 (0) | 2020.11.19 |
[DevOps/Docker] 네트워크 구성 (가상 브릿지/가상 NIC) (0) | 2020.11.18 |
[DevOps/Docker] 릴리스 관리 장치 (cgroups) (0) | 2020.11.18 |
[DevOps/Docker] 컨테이너를 구획화하는 장치 (namespace) (0) | 2020.11.17 |