You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# create: 컨테이너 생성 명령어
$ docker create -it --name mycentos centos:7
# start: 컨테이너 실행 명령어
$ docker start mycentos
# attach: 컨테이너 내부 접속 명령어
$ docker attach mycentos
run, create, run, attach의 차이
2.2.2 컨테이너 목록 확인
# Up 상태의 컨테이너만 표시
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9371741ae0d ubuntu:16.04 "/bin/bash" 6 minutes ago Up 6 minutes
# Created, Exit 상태의 컨테이너까지 표시
$ docker ps -a
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a81499095aa ubuntu:16.04 "/bin/bash" 4 seconds ago Exited (0) 1 second ago myubuntu
5575390265f1 ubuntu:16.04 "--name myubuntu" 24 seconds ago Created nostalgic_hofstadter
f9371741ae0d ubuntu:16.04 "/bin/bash" 8 minutes ago Up 8 minute
2.2.3 컨테이너 삭제
컨테이너 삭제 명령어
Up상태의 컨테이너는 rm으로 삭제 불가능
stop으로 정지 시킨 다음에 rm으로 삭제 해야함
# stop: 컨테이너 정지 명령어# rm: 컨테이너 삭제 명령어
$ docker stop myubuntu
$ docker rm myubuntu
2.1 도커 이미지와 컨테이너
2.1.1 도커 이미지
2.1.2 도커 컨테이너
2.2 도커 컨테이너 다루기
2.2.1 컨테이너 생성
exit
입력,Ctrl+D
: 컨테이너를 종료Ctrl+P,Q
: 컨테이너를 정지하지 않음2.2.2 컨테이너 목록 확인
2.2.3 컨테이너 삭제
-f
옵셥으로 Up상태의 컨테이너를 강제로 삭제 가능$ docker container prune $ docker rm -f $(docker ps -aq)
2.2.4 컨테이너를 외부에 노출
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1753772e652 ubuntu:14.04 "/bin/bash" 15 seconds ago Up 14 seconds network_test2
root@8fb1db03d88b:/# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 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:0 RX bytes:0 (0.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)
# -p 내부:외부 $ docker run -it --name network_test3 -p 80:80 ubuntu:14.04
2.2.5 컨테이너 애플리케이션 구축

- 도커의 철학: 하나의 컨테이너에는 하나의 프로세스만 실행 - 유형2가 더 적절한 구조(컨테이너를 하나더 만들자)2.2.6 도커 볼륨

- 위 그림에서 mysql 컨테이너를 삭제하면 mysql 에서 저장된 파일 정보들이 모두 삭제됨 -> 볼륨 매핑으로 해결1. 호스트와 볼륨 공유 (가장 많이 사용)
/home/wordpress_db
와 컨테이너의/var/lib/mysql
볼륨 공유/var/lib/mysql
에 데이터를 쓰면 호스트의/home/wordpress_db
에서도 확인 가능/home/wordpress_db
에 mysql 파일 정보들이 남아있음2. 볼륨 컨테이너
-v
옵션으로 볼륨을 사용한 컨테이너를 다른 컨테이너와 공유3. 도커 볼륨
2.2.7 도커 네트워크
1. 도커 네트워크 구조
root@8fb1db03d88b:/# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 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:0 RX bytes:0 (0.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)
eth0
와 연결된veth
가 호스트 네트워크 인터페이스로 생성되면서 외부에서 접근할 수 있음2. 도커 네트워크 기능
docker0
브리지를 통해 외부와 통신할 수 있는 환경 제공브리지 네트워크
"Subnet": "172.17.0.0/16"
: 172.17.0.x IP대역을 컨테이너에 순차적으로 할당호스트 네트워크
docker run -it --name network_host --net host ubuntu:14.04 root@test-bmt2-controller001-ncl:/# ifconfig docker0 Link encap:Ethernet HWaddr 02:42:69:50:58:54 inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:3048565172 errors:0 dropped:0 overruns:0 frame:0 TX packets:3683268937 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:987713088651 (987.7 GB) TX bytes:897484235252 (897.4 GB) eth0 Link encap:Ethernet HWaddr c2:b4:04:d0:d7:48 inet addr:10.106.231.230 Bcast:10.106.231.255 Mask:255.255.254.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5072331854 errors:2 dropped:0 overruns:0 frame:0 TX packets:2990209740 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:864213393971 (864.2 GB) TX bytes:988585580770 (988.5 GB) 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:14731 errors:0 dropped:0 overruns:0 frame:0 TX packets:14731 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:4208663 (4.2 MB) TX bytes:4208663 (4.2 MB)
논 네트워크
docker run -it --name network_none --net none ubuntu:14.04 root@6e0f4f2041d7:/# ifconfig 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)
MacVLAN 네트워크
172.17.x.x
대신에 네트워크 장비의 IP를 할당 받음
- MacVLAN을 사용하는 컨테이너와 호스트는 통신 불가, 컨테이너A와 서버2는 통신이 가능하지만 서버1은 통신 불가 - MacVLAN을 사용하려면 적어도 1개의 네트워크 장비와 서버가 필요The text was updated successfully, but these errors were encountered: