✔️ 이미지 레이어 httpd:latest의 레이어를 확인해보자. vagrant@docker ~ docker image inspect httpd --format '{{ .RootFS.Layers }}' [sha256:9c1b6dd6c1e6be9fdd2b1987783824670d3b0dd7ae8ad6f57dc3cea5739ac71e sha256:1d1a2486e901871ad1257512d588eebb30ae0605d8353abb6635e2d313b2187c sha256:ec02eb7f3cf4dd78bc518d3a8ccf57f57336ceacb9638303891787ff2ec2e96f sha256:67bb571b5bd2b65cbdf2c93c6f9dc8e89414055dd7444df617b234669..
✔️ Docker 이미지 빌드 방법 docker commit 명령 Dockerfile ✔️ 명령으로 이미지 생성하기 우선 컨테이너를 띄운다. vagrant@docker ~ docker run -d httpd 2b0edf3314a92f329e117f8e706732afcd108b882d97ca704d89108d861193ee vagrant@docker ~ docker exec -it 2b bash root@2b0edf3314a9:/usr/local/apache2# pwd /usr/local/apache2 root@2b0edf3314a9:/usr/local/apache2# cd htdocs/ root@2b0edf3314a9:/usr/local/apache2/htdocs# ls index.html..
✔️ Docker에서의 Netfilter Docker에서의 Netfilter가 어떤 역할을 하는지 알아보자 docker0가 있고 172.17.0.2 ip를 가지는 하나의 컨테이너가 연결되어 있다. docker0는 Netfilter의 NAT 기능을 통해 인터넷 통신을 할 수 있다. 컨테이너가 8.8.8.8 (google DNS 서버)로 접속을 시도한다고 하자 컨테이너의 private ip SRC : 172.17.0.2 에서 → 목적지인 DST : 8.8.8.8로 찾아갈 수 없다. enp0s3에 설정되어 있는 ip는 10.0.2.15이다. 우리는 가상화를 쓰고 있기 때문에 이 ip도 private ip이며 해당 ip도 또 다시 NAT을 거쳐서 외부로 통신하게 된다. 즉, 출발지를 10.0.2.15 로 목적지..
✔️ 네트워크 플러그인 종류 bridge host null .... 자주 사용하는 건 bridge와 host이다. ✔️ 브릿지 네트워크 ✔️ 호스트에서 확인하는 방법 인터페이스 확인 ip addr show docker0 : 브릿지 vethX : 가상 인터페이스 브릿지 확인 명령 설치 sudo apt install bridge-utils brctl show NAT 테이블 확인 sudo iptables -t nat -L -n MASQUERADE: Source NAT ✔️ 컨테이너에서 확인하는 방법 sudo apt update sudo apt install iproute2 ip addr show ip route ✔️ 사용 예제 vagrant@docker ~ docker network ls NETWORK..
✔️ Docker Network 개요 우분투 컨테이너를 하나 띄우고 ip a s 명령을 실행한다. root@779202aa7aac:/# apt install iproute2 root@779202aa7aac:/# ip a s 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 55: eth0@if56: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:a..
✔️ Docker Volume 개요 이미지는 하나 이상의 layer로 구성되어 있다. 이미지의 레이어는 어떻게 확인하는가 ? 1) 이미지를 받을 때(pull) 확인할 수 있다. 2) docker inspect 명령 실행 후 layer에서 확인할 수 있다. "RootFS": { "Type": "layers", "Layers": [ "sha256:e59fc94956120a6c7629f085027578e6357b48061d45714107e79f04a81a6f0c" ] }, 이미지는 immutable이므로 절대 바뀌지 않는다. 이미지로 컨테이너를 만들게 되면 기존 이미지의 내용이 변하지 않고 컨테이너로 생성된다. 즉 이미지는 read-only 상태이며 쓰기 작업을 할 수 없다. 만약 그 위에 read/write..