본문 바로가기

Linux/Docker

38. CentOS7 : Docker - Image 제작

1. Image 제작 실습 전 httpd 이미지 이용한 컨테이너 생성


※ 도커가 설치되어 있지 않으면 아래 글 참고하여 설치

31. CentOS7 : Cloud & Docker

1. Cloud 언제 어디서나 어떠한 단말을 가지고서라도 인터넷 접속만 가능하다면 사용한만큼 비용을 지불하고 원하는 IT 자원을 이용하는 것 설치할 필요 없음 통합된 환경 제공 사용한 만큼 비용

mh-itstudy.tistory.com


※ httpd 이미지 다운로드
# docker pull httpd

※ httpd 이미지 이용하여 컨테이너 실행


※ html 파일 생성


※ 컨테이너 내부에 웹 페이지 파일 복사하여 넣기


※ 웹 브라우저에서 접속 테스트


2. Container에서 이미지 제작

docker commit

  • Container를 이미지로 생성
  • tar로 묶은 후 실행


※ 위에서 생성 및 수정한 h1 컨테이너를 이용하여 새로운 image 생성


※ 생성한 image 확인
→ 리포지토리와 tag를 지정하지 않으면 Dangle image가 생성됨


※ 생성한 이미지 삭제


※ 다시 리포지토리와 tag 지정하여 Container에서 Image 제작


※ 생성한 이미지 확인


※ 생성한 이미지 이용하여 컨테이너 실행


※ 웹 브라우저에서 접속 테스트 - 위에서 변경한 html 파일이 정상적으로 적용 되었는지 확인


※ image를 archive 파일로 저장 - alpine, centos:7 이미지를 image.tar라는 아카이브 파일로 저장한다.


※ archive된 파일을 다시 load


※ container의 파일을 archive 파일로 추출


※ export : 컨테이너를 이미지로 내보내기 (설정파일이 초기화 되어있음)


※ test.tar 아카이브 파일의 hello.txt 파일 확인

3. archive file로 image 만들기

※ archive file로 image 생성


※ 생성한 이미지 확인


※ 컨테이너 실행
→ 설정 파일이 초기화 되어 image 실행이 안됨


※ 실행 시 설정 파일 지정하여 다시 image 생성


※ 위에서 생성한 image 이용하여 컨테이너 실행


※ 프로세스 확인 - 정상적으로 실행 됨


※ c3 컨테이너 접속 - 위에서 생성한 hello.txt 파일이 있는 것을 확인할 수 있다.


※ h1 컨테이너 실행


※ h1 컨테이너 내부에 호스트의 index.html 파일 복사하여 넣기



http foreground 명령을 실행할 위치를 찾지 못함


# docker run -itd -p 65000:80 -e "PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" --name h3 mhan/httpd