[Docker] docker commit 명령을 이용하여 이미지 빌드하기
DevOps/Docker2022. 5. 10. 23:55[Docker] docker commit 명령을 이용하여 이미지 빌드하기

✔️ 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의 역할
DevOps/Docker2022. 5. 10. 21:53[Docker] Netfilter의 역할

✔️ 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
DevOps/Docker2022. 5. 10. 20:07[Docker] Docker Network - 2

✔️ 네트워크 플러그인 종류 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
DevOps/Docker2022. 5. 10. 17:48[Docker] Docker Network - 1

✔️ 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..

DevOps/Docker2022. 5. 9. 17:19[Docker] Docker Volume (볼륨)

✔️ Docker Volume 개요 이미지는 하나 이상의 layer로 구성되어 있다. 이미지의 레이어는 어떻게 확인하는가 ? 1) 이미지를 받을 때(pull) 확인할 수 있다. 2) docker inspect 명령 실행 후 layer에서 확인할 수 있다. "RootFS": { "Type": "layers", "Layers": [ "sha256:e59fc94956120a6c7629f085027578e6357b48061d45714107e79f04a81a6f0c" ] }, 이미지는 immutable이므로 절대 바뀌지 않는다. 이미지로 컨테이너를 만들게 되면 기존 이미지의 내용이 변하지 않고 컨테이너로 생성된다. 즉 이미지는 read-only 상태이며 쓰기 작업을 할 수 없다. 만약 그 위에 read/write..

[Docker] Docker 컨테이너 관리 명령어 (3)
DevOps/Docker2022. 5. 7. 16:05[Docker] Docker 컨테이너 관리 명령어 (3)

✔️ 컨테이너 환경 변수 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 변수는 이미지 내에 지정되어 있는 것이다. 이미지를 만들 때 환경 변수를 지정할 수 있다. ..

image