-
docker 에서 실행중인 컨테이너를 이미지로 전환 처리LINUX/Docker 2024. 6. 30. 17:25728x90
컨테이너의 변경 사항으로 새 이미지 만들기
사건의 발달은 6000번 포트로 서비스를 오픈했을때, chrome에서 접근하지 못하는 문제가 발생했습니다. 원인으로 6000번 포트의 비밀 (ERR_UNSAFE_PORT)를 보면 보안상의 이유로 막았다고 합니다.
문제는 이미 설정한 컨테이너를 지우고 다시 작업하기 귀찮은 상황이었습니다. 그래서 찾은게 docker commit라는 명령입니다.
해당 명령어를 이용해서 실행중인 컨테이너를 새 이미지로 만들 수 있습니다. 저는 아래와 같이 사용 하였습니다.
# 6000번 포트를 연동하고 있는 컨테이너 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4d4f0a0acbae ssh_alpine "/usr/sbin/sshd -D" 8 hours ago Up 8 hours 0.0.0.0:6000-6001->6000-6001/tcp, :::6000-6001->6000-6001/tcp dqserver # 컨테이너를 이미지로 생성 $ docker commit dqserver dqserver_image # 기존 이미지 중지 및 삭제 $ docker stop dqserver $ docker rm dqserver # 포트를 변경해서 신규 이미지 생성 $ docker run -it -d -p 6002:6002 -p 6001:6001 --name dqserver dqserver_image $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4d4f0a0acbae dqserver_image "/usr/sbin/sshd -D" 8 hours ago Up 8 hours 0.0.0.0:6001-6002->6001-6002/tcp, :::6001-6002->6001-6002/tcp dqserver
참고로 이미지가 커밋되는 동안 커밋되는 컨테이너와 해당 프로세스는 일시 중지됩니다. 이렇게 하면 커밋을 생성하는 과정에서 데이터 손상이 발생할 가능성이 줄어듭기 때문입니다. 동작을 원하지 않는 경우 –pause 옵션을 false로 설정하세요.
추가적인 설명은 docker commit를 확인하세요!
참고자료
728x90'LINUX > Docker' 카테고리의 다른 글
Docker arguments 처리시 유의점 (0) 2022.11.14 Mac M1에서 Docker로 Mysql 실행하기 (0) 2022.11.11 [Docker] FTP 서버 구축 하기 (0) 2015.10.14 [Docker] nginx 1.9.2 설치 하기 (0) 2015.06.17 [Mariadb]Docker를 이용하여 MAIRADB BINARY 설치 가이드 문서 (0) 2015.05.20