컨테이너 생성
Hongui-MacBook-Pro:~ hongkun$ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 50aff78429b1: Pull complete f6d82e297bce: Pull complete 275abb2c8a6f: Pull complete 9f15a39356d6: Pull complete fc0342a94c89: Pull complete Digest: sha256:6873122c772dd72e52d9b282a9e8ac0ce33a99659df31b1881552a4f9957f527 Status: Downloaded newer image for ubuntu:latest Hongui-MacBook-Pro:~ hongkun$
컨테이너 실행
Hongui-MacBook-Pro:~ hongkun$ docker run -i -t ubuntu
root@76c594c427e0:/#
-i 옵션 : 컨터이너와 상호 입출력을 가능
-t 옵션 : tty 활성화 해서 bash 셸을 사용하도록 컨테이너 설정
도커 공식 이미지 저장소에서 centos 이미지 다운로드 (docker pull)
Hongui-MacBook-Pro:~ hongkun$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
85432449fd0f: Pull complete
Digest: sha256:3b1a65e9a05f0a77b5e8a698d3359459904c2a354dc3b25ae2e2f5c95f0b3667
Status: Downloaded newer image for centos:lates
도커 컨테이너 이미지 확인
Hongui-MacBook-Pro:~ hongkun$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 00fd29ccc6f1 7 hours ago 111MB centos latest 3fa822599e10 2 weeks ago 204MB hello-world latest 725dcfab7d63 5 weeks ago 1.84kB continuumio/miniconda3 latest f700f7f570c7 6 weeks ago 571MB Hongui-MacBook-Pro:~ hongkun$
도커 컨테이너 생성
Hongui-MacBook-Pro:~ hongkun$ docker create -i -t --name mycentos centos:7 Unable to find image 'centos:7' locally 7: Pulling from library/centos Digest: sha256:3b1a65e9a05f0a77b5e8a698d3359459904c2a354dc3b25ae2e2f5c95f0b3667 Status: Downloaded newer image for centos:7 599b21b6c726da6184ae13438683a6ba849c88141968210fe2e95594b4841e32 Hongui-MacBook-Pro:~ hongkun$ docker start mycentos mycentos Hongui-MacBook-Pro:~ hongkun$ docker attach mycentos [root@599b21b6c726 /]#
create 명령어는 컨테이너를 생성만 할 뿐 컨테이너로 들어가지 않습니다.
docker start 명령어로 컨테이너를 시작하고 내부로 들어 갑니다.
attach 는 컨테이너의 내부로 들어가는 명령어 있니다.
exit는 컨테이너를 빠져 나오면서 정지를 시키고
Ctrl + P, Q 는 단순히 셸에서만 빠져나옵니다.
컨테이너 종료 없이 빠져나온 다음에 ps 로 목록 확인
Hongui-MacBook-Pro:~ hongkun$ docker run -i -t ubuntu
root@761173a1be96:/# Hongui-MacBook-Pro:~ hongkun$
Hongui-MacBook-Pro:~ hongkun$
Hongui-MacBook-Pro:~ hongkun$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
761173a1be96 ubuntu "/bin/bash" 23 seconds ago Up 24 seconds trusting_goodall
Hongui-MacBook-Pro:~ hongkun$
모든 목록 확인
Hongui-MacBook-Pro:~ hongkun$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
761173a1be96 ubuntu "/bin/bash" About a minute ago Up About a minute trusting_goodall
599b21b6c726 centos:7 "/bin/bash" 9 minutes ago Exited (0) 4 minutes ago mycentos
76c594c427e0 ubuntu "/bin/bash" 17 minutes ago Exited (0) 14 minutes ago jovial_mccarthy
ab221316ced8 continuumio/miniconda3 "/usr/bin/tini -- ..." 4 weeks ago Exited (0) 4 weeks ago sleepy_hoover
bd8e3fabd8d5 continuumio/miniconda3 "/usr/bin/tini -- ..." 4 weeks ago Exited (137) 4 weeks ago amazing_hoover
dcccfbf01020 hello-world "/hello" 4 weeks ago Exited (0) 4 weeks ago elastic_jones
Hongui-MacBook-Pro:~ hongkun$
- STATUS : 컨테이너의 상태, 실행은 UP, 종료는 Exited, 일시 중시는 Pause
- PORTS : 컨테이너가 개방한 포트와 호스트에 연결한 포트를 나열, 앞에서 컨테이너를 생성할 때는 외부에 노출하도록 설정하지 않았으므로 PORTS 항목에는 아무것도 출력되지 않음
- NAME : 컨테이너의 고유한 이름. 컨테이너를 생성할 때 --name 옵션으로 이름을 설정하지 안으면 도커 엔진이 임의로 형용사와 명사를 무작위로 조합한 이름을 설정, 이름 변경 가능 (아래 참고)
Hongui-MacBook-Pro:~ hongkun$ docker rename jovial_mccarthy my_ubuntu
Hongui-MacBook-Pro:~ hongkun$ docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Image}}"
CONTAINER ID STATUS IMAGE
761173a1be96 Up 2 hours ubuntu
docker ID 전체 확인
Hongui-MacBook-Pro:~ hongkun$ docker inspect mycentos | grep Id
"Id": "599b21b6c726da6184ae13438683a6ba849c88141968210fe2e95594b4841e32",
컨테이너 삭제
Hongui-MacBook-Pro:~ hongkun$ docker rm mycentos
mycentos
Hongui-MacBook-Pro:~ hongkun$ docker rm my_ubuntu
my_ubuntu
Hongui-MacBook-Pro:~ hongkun$ docker rm sleepy_hoover
sleepy_hoover
Hongui-MacBook-Pro:~ hongkun$ docker rm amazing_hoover
amazing_hoover
Hongui-MacBook-Pro:~ hongkun$ docker rm elastic_jones
elastic_jones
Hongui-MacBook-Pro:~ hongkun$ docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Image}}"
CONTAINER ID STATUS IMAGE
761173a1be96 Up 2 hours ubuntu
Hongui-MacBook-Pro:~ hongkun$
- 실행 중 컨테이너 삭제 : docker rm -rf {이름}
- 모든 컨테이너 삭제 : docker container prune
docker ps -a -q
-a : 컨테이너 상태와 관계 없이 모든 컨테이너 삭제
-q : 컨테이너 ID 출력
- 모든 컨테이너 정지 : docker stop $(docker ps -a -q)
- 모든 컨테이너 삭제 : docker rm $(docker ps -a -q)
컨테이너를 외부에 노출
root@f7a8a6f2838b:/# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:828 (828.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)