docker - image build
카테고리: docker
docker : image build
nginx 의 container 의 html 파일을 추가하여 새로운 image 로 저장
-
container run
$ sudo docker container run --name web_01 -d -p 80:80 nginx:latest -d : detach detach 실행 실행시 입출력 터미널이 빠져있음 -it
-
ps -a
test01@test01-virtual-machine:~$ sudo docker container ps -a
-
서비스 확인
-
web_01 container 에 attach
test01@test01-virtual-machine:~$ sudo docker container attach web_01 반응이 없어서 ctrl + c 또는 ctrl +z
-
의도하지 않은 컨테이너의 종료가 있었다
$ sudo docker container ps -a
$ sudo docker container start 0dc62d0c7af6 -> nginx의 컨테이너 id $ sudo docker container ps -a
-
detach 모드로 실행된 컨테이너에 접근할때는 exec : 이미 실행된 컨테이너에서 해당명령을 실행
$ sudo docker container exec -it web_01 /bin/bash
-
webserver contents 디렉터리를 찾기
# find / -name html
# ls -al /usr/share/nginx/html/
-
web_01 컨테이어 html 파일 확인
# cat /usr/share/nginx/html/index.html
-
기존 index.html 이름 변경으로 백업 후 새로운 index.html 을 만들기
# mv ./index.html ./index.html.bak
-
index.html 파일 생성
# echo web_01 > index.html # cat index.html
-
ctrl + p + q
$ sudo docker container ps -a
-
현재 컨테이너(기존 이미지에 추가된)의 내용을 새로운 이미지로 commit
$ sudo docker image ls
$ sudo docker commit -a "dlsrlrla" web_01 web_01:1.0
$ sudo docker image ls
-
이미지의 내부 설정을 확인
$ sudo docker image inspect web_01:1.0
새로 생성된 image 를 reference 하여 새로운 컨테이너를 생성
-
기존 컨테이너 종료후 새롭게 만들어진 이미지로 컨테이너를 생성
-
80 포트 중복 문제 해결
$ sudo docker container ps -a
-
web_01:1.0 이미지를 참조하여 컨테이너 실행
$ sudo docker image ls
$ sudo docker container run --name web_02 -d -p 80:80 web_01:1.0
$ sudo docker container ps
-
새로 생성된 이미지로 컨테이너 생성시 포트번호 다르게
-
구성도
-
이미 포트 할당되어 있어서 실행 불가
$ sudo docker container run --name web_02_clone -d -p 80:80 web_01:1.0
$ sudo docker container ps -a
-
기존 create 됐지만 start 안된 컨테이너 삭제
$ sudo docker container rm web_02_clone
-
새로운 포트로 컨테이너 시작
$ sudo docker container run --name web_02_clone -d -p 8080:80 web_01:1.0
-
컨테이너 정보 확인
$ sudo docker container ps -a
댓글 남기기