본문 바로가기

클라우드/도커(Docker)

도커 Docker 이미지 제작 2

더보기

#컨테이너 우분투에 아파치 설치
vagrant@docker:~$ docker run -it ubuntu bash
root@395599157e3b:/# apt update
root@395599157e3b:/# apt install apache2

# 다른 터미널에서 확인
vagrant@docker:~$ curl 172.17.0.3 -I
curl: (7) Failed to connect to 172.17.0.3 port 80: Connection refused

# 아파치 실행 후 다른터미널에서 확인 
root@395599157e3b:/# apachectl -D FOREGROUND

vagrant@docker:~$ curl 172.17.0.3 -I
HTTP/1.1 200 OK
Date: Fri, 02 Jul 2021 05:49:11 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Fri, 02 Jul 2021 05:48:52 GMT
ETag: "c-5c61d82b7093e"
Accept-Ranges: bytes
Content-Length: 12
Content-Type: text/html


# html파일 수정
root@395599157e3b:/# cd /var/www/html/      
root@395599157e3b:/var/www/html# rm index.html 
root@395599157e3b:/var/www/html# echo "hello world" > index.html
root@395599157e3b:/var/www/html# apachectl -D FOREGROUND

vagrant@docker:~$ curl 172.17.0.3
hello world


# 포트 수정
root@395599157e3b:/etc/apache2# sed -i -e 's/OLD/NEW/g' ports.conf
                         -i 저장 -e 에디터 s대치하라 /기존 문장/새로운 문장/일전 파일전체  파일명
root@395599157e3b:/etc/apache2# sed -i -e 's/Listen 80/Listen 8080/g' ports.conf    


# 확인
root@395599157e3b:~# apachectl -D FOREGROUND

vagrant@docker:~$ curl 172.17.0.3
curl: (7) Failed to connect to 172.17.0.3 port 80: Connection refused
vagrant@docker:~$ curl 172.17.0.3:8080
hello world


 


이미지 레이어 비교

더보기

# 도커 커밋하여 이미지 생성 1
vagrant@docker:~$ docker commit 39 apache:v1
sha256:3b20dac0855690ddd86794d18adffcaadfe245ca48c052abbf02349acdfddb52

# 컨테이너 생성 1
# 아파치를 자동 실행 시켜주는 명령어와 함께 실행
vagrant@docker:~$ docker run -d apache:v1 apachectl -D FOREGROUND


# 도커 커밋하여 이미지 생성 2
# change 명령어를 넣어 이미지를 생성 할 때,
  따로 명령어를 넣어주지 않아도 아파치를 자동 실행 시켜주게 한다
vagrant@docker:~$ docker commit --change='CMD apachectl -D FOREGROUND' 39 apache:v2

# 컨테이너 생성 2
vagrant@docker:~$ docker run -d apache:v2
vagrant@docker:~$ docker ps





# 기존에 있던 우분투 이미지
vagrant@docker:~$ docker image inspect ubuntu | tail
            "Layers": [
                "sha256:feef05f055c989eea0367f5d3a2cba79896dd6d8a8b72bea2c729548a4ca5aef"

# 새로만든 이미지 
# 상태가 변경된 상태로 이미지를 만들어서 추가된 레이어가 있다
# 포트 수정 , html 파일 수정 
vagrant@docker:~$ docker image inspect apache:v1 | tail
            "Layers": [
                "sha256:feef05f055c989eea0367f5d3a2cba79896dd6d8a8b72bea2c729548a4ca5aef",
                "sha256:a58c3056daeffb397efcf164c2347913c790d9cdcef6b034728164f89d22ddb7"