목차
1. Docker Image
1.1 commit
1.2 export, import
2. Commit
3. tar, load
4. export, import
* 추가 정보
1. Docker Image
- Docker에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Docker Image라고 한다.
1.1 commit
- commit으로 이미지를 생성하여 사용할 수 있고, 생성된 이미지들을 tar로 압축한 다음 load 해서 가져와서 사용할 수도 있다.
1.2 export, import
- export로 컨테이너를 내보내고 import로 이미지를 가져와서 사용한다.
- commit으로 이미지를 생성하고, 생성한 이미지들을 tar 파일로 압축해서 docker에서 load를 이용하여 이미지를 다운 받아올 수 있다.
2. Commit
- 도커 컨테이너 상에서 작업한 내용을 Image로 Commit하여 나중에 해당 이미지로부터 다시 컨테이너를 실행함으로서 작업했던 내용을 다시 사용할 수 있다.
- httpd 이미지를 통한 컨테이너를 생성한 다음 해당 컨테이너를 commit을 통해 새로운 이미지를 생성한다.
- commit을 통한 h1 컨테이너에 적용된 이미지와 동일한 이미지가 생성된 것을 확인 할 수 있다.
- commit을 통해 생성한 이미지로 새롭게 컨테이너를 생성하여 사용할 수 있다.
3. tar, load
- commit을 이용한 이미지 생성이나 이미 존재하는 이미지들을 tar를 이용하여 하나의 파일로 생성하여 load를 통해 여러 이미지들을 한번에 생성할 수도 있다.
- alpine 이미지와 centos:7 이미지를 image.tar 파일로 압축한다.
- docker를 통해 압축한 파일이기 때문에 docker load 명령어를 통해 해당 압축 파일을 풀어줘야 한다.
- docker load를 통해 해당 압축 파일을 해제하게 되면 압축 파일에 있던 여러 이미지가 생성되는 것을 확인 할 수 있다.
4. export, import
- 위에서 봤던 commit, tar로 압축 후 load하는 방식처럼 export, import를 통해 Image를 생성하는 방법도 있다.
- export를 통해 컨테이너를 압축하여 내보낸다.
- import를 통해 export된 파일을 가져와 이미지를 생성한다.
- 단 export, import를 통해 생성된 이미지는 기본 설정이 전부 초기화 되기 때문에 초기 설정을 전부 해줘야한다.
- c1 컨테이너 생성 후 export를 통해 test.tar 파일로 내보낸다.
- docker export 명령어는 현재 docker container 내부의 디렉토리 전체를 압축하여 새로운 이미지로 생성해 준다고 볼 수 있다.
- import를 통해 test.tar 파일로부터 이미지를 생성한다.
- import를 통해 이미지를 생성하고, 생성된 이미지를 통해 컨테이너를 실행시키게 되면 설정이 전부 초기화 되기 때문에 실행이 되지 않는다.
- 이를 정상적으로 기동하기 위해서는 import 이미지를 기반으로 새롭게 Dockerfile을 작성하거나, import 시점에 명령어를 주입시켜 주어야 한다.
- 컨테이너를 실행 시키기 위해 import 시점에 CMD를 통해 명령어를 주입 시켜 준다.
- 위와 같이 import 시점에 명령어를 실행시켜주자 이미지 생성 및 컨테이너가 정상적으로 생성되고 작동되는 것을 볼 수 있다.
- 즉, import 할 때 초기화 된 것들을 다시 살려줘야 한다.
* 추가 정보
- fore ground라는 명령어를 사용하기
- 환경 변수를 지정해주지 않으면 절대 경로를 지정해주지 않는 이상 어디서 실행해야 하는지 알지 못한다.
- import로 이미지를 생성하게 되면 설정 파일이 전부 초기화 되기 때문에 forground의 실행 명령어의 위치를 알 수 없어 그냥 실행 시키게 되면 실행이 되지 않는 것을 볼 수 있다.
- 때문에 해당 명령어를 실행 시키기 위해 환경 변수에 해당 명령어의 경로를 미리 지정해주면서 실행 시켜주게되면 정상적으로 컨테이너 생성 및 프로세스가 동작하는 것을 볼 수 있다.
- 정상적으로 컨테이너가 실행되어 Web Server도 정상적으로 작동하는 것을 볼 수 있다.
- 해당 컨테이너 정보를 확인하게 되면 PATH 경로가 지정되어 있는 것을 볼 수 있다.
- export import는 설정파일이 초기화 된다는 것을 잊지말자!
- commit 하면 이미지로 만들어지고 바로 사용하면 된다.
- save 명령어를 이용해서 이미지 파일을 압축 파일 로 압축한 다음( tar로 압축해서) docker load 하면 된다. (이게 가장 편한 방법이다.)
'Programming > Docker' 카테고리의 다른 글
Docker - PHP, MYSql 설치 및 실행 (0) | 2022.06.01 |
---|---|
Docker - Link ( + Scripts) (0) | 2022.06.01 |
Docker - Scripts (0) | 2022.05.31 |
Docker - HAProxy, Network, Port Forwarding (0) | 2022.05.30 |
Docker - Network (0) | 2022.05.30 |