티스토리 뷰
일반적으로 도커 컨테이너에서 작업하는 내용들은 컨테이너가 종료되면 사라진다
이것을 commit하면 나중에 해당 이미지로 다시 컨테이너를 실행하여 작업했던 내용을 다시 사용할 수 있다
docker commit [컨테이너명] 하면 bangle이미지가 됨 (<none>상태)
docker commit [컨테이너명] [레포지토리]:[태그]하면 된다
docker import -> 컨테이너로 import 함
docker export -> 이미지파일로 export 함
이미지파일을 아카이브할때
docker save -o image.tar alpine centos:7
이 아카이브파일을 다시 풀어야할때
이 상태에서
docker load -i image.tar
하면 아카이브가 풀린다
docker run -itd --name c1 centos:7
echo 'DDU' > DDU.txt <- 텍스트파일에 해당 문구를 적음
docker export -o test.tar c1
컨테이너를 아카이브(export)
tar tvf test.tar | grep DDU.txt
하면 이것만 뽑아서 아카이브 해제 가능
docker import test.tar centos:c1
이렇게 가져오면 컨테이너는 이미지로 import된다
docker run -itd --name c2 centos:c1
이렇게하면 설정이 초기화되기때문에 실행이 불가능하다
docker import --change 'CMD ["/bin/bash"]' test.tar centos:c2
이렇게하면 실행 불가능했던 c2를 다시 실행 가능하게 할 수 있다
*이미지를 실행할 때 수행할 명령어
docker run -itd --name c3 centos:c2
이후 이렇게하면 실행됨
docker run -itd -p 8080:80 --name h1 httpd
docker cp index.html h1:/usr/local/apache2/htdocs/index.html
docker export -o http.tar h1
여기까진 괜찮음
docker import httpd.tar DDU:httpd
이러면 설정파일이 초기화된다
docker images하면 이미지는 있는데 실행은 불가능함
docker run -itd -p 9090:80 --name h2 DDU:httpd
이러면 실행불가능함
여기서 커맨드를 바꿔줘야한다 (지금 상태는 httpd-foreground)
docker import --change 'CMD ["/usr/sbin/httpd -D FOREGROUND"]' http.tar DDU:httpd1
docker run -itd -p 10000:80 --name h2 DDU:httpd1
이렇게 해보면 잘될것이다
이 다음에 환경변수를 path로 집어넣어야 정상적으로 실행된다
docker run -itd -p 8080:80 --name n1 httpd
docker cp index.html h1:/usr/local/apache2/htdocs/index.html
docker export -o http.tar h1
docker import --change 'CMD ["httpd-foreground"]' http.tar DDU:http
docker -itd -p 65000:80 -e "PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" --name h2 DDU:http
*-e : path 경로 옵션
inspect에서 확인해보면 환경변수에 따라 있고없고가 실행 가능 여부를 나눈다
환경변수가 null이면 실행을 못함
.bash_profile에 디렉터리를 추가하면 경로를 이동하지 않고 실행파일을 사용할 수 있다
디렉터리:디렉터리:디렉터리 형식으로 나뉨
추가하면 source .bash_profile로 다시 받아온다
docker에서 command가 httpd-foreground상태인 이미지파일에 path 경로를 집어넣은 것도 이런 원리
'Docker' 카테고리의 다른 글
Dockerfile (0) | 2022.06.03 |
---|---|
docker 컨테이너 link, mysql 컨테이너 생성 (0) | 2022.06.01 |
Object Storage를 이용한 Docker httpd 이미지 업로드 (0) | 2022.05.30 |
Docker 기본 조작 (0) | 2022.05.26 |