![[Docker] docker commit 명령을 이용하여 이미지 빌드하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcI88yJ%2FbtrBZsgnD59%2FAAAAAAAAAAAAAAAAAAAAAIjLVG86d_FkbZI6ssttCjVreJ1e3TNfGmE5hN8ZU6EP%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DFsGSvoDwA6fK0U8o8EqSMLUWeCU%253D)
✔️ 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의 역할](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FNEJfm%2FbtrBNUWKnx7%2FAAAAAAAAAAAAAAAAAAAAAGLvcR0JukZlBVL8zkG9xx07cCtogb55rO3BkJ998I5x%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DZZvI2TNLWkDimcgWRMd%252FFU%252BkEUo%253D)
✔️ 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 로 목적지..
![[Docker] Docker Network - 2](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fv7JN8%2FbtrBKpYfOxC%2FAAAAAAAAAAAAAAAAAAAAAKMS0rzympi7YREK8M6VEsc0Eu--a_6GHuJH4jbB4iru%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D0TfXJ8O3MjZUVMH1lXVG7TMMC20%253D)
✔️ 네트워크 플러그인 종류 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] Docker Network - 1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FKoc66%2FbtrBNb4UWgs%2FAAAAAAAAAAAAAAAAAAAAAPSZfOj-yxe25gct8A3JEvbJ5EuEgVRMik6DYYoHandH%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DI9Nc8D9plR7HOxPXuzDdmHVUV20%253D)
✔️ 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..
![[Docker] Docker 컨테이너 관리 명령어 (3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbrSO0n%2FbtrBq1iWkda%2FAAAAAAAAAAAAAAAAAAAAAIdLXUq7msa94lwIRxQck2g9hvtekmOktLq_H_rV7Rg7%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BVspQ2TvVbr9YQKU0qsfoZJmSYE%253D)
✔️ 컨테이너 환경 변수 docker run -e A=100 ubuntu docker run -d -e MYSQL_ROOT_PASSWORD=P@ssw0rd -e MYSQL_DATABASE=wordpress mysql:5.7 일부 이미지는 실행시 환경 변수가 필요하다. vagrant@docker ~ docker run -it -e A=100 ubuntu root@26ea4feac856:/# env HOSTNAME=26ea4feac856 PWD=/ A=100 HOME=/root ------------------------- 이후 생략 ------------------------- 환경 변수 중 하나인 PATH 변수는 이미지 내에 지정되어 있는 것이다. 이미지를 만들 때 환경 변수를 지정할 수 있다. ..