기억의 습작

6. 도커 이미지 생성 본문

SCM (형상관리)/docker

6. 도커 이미지 생성

뿌사리다 2021. 8. 27. 00:05

목차 

  1. Dockerfile 을 이용한 이미지 생성
  2. docker-compose 을 이용한 이미지 생성
  3. 이미지 커밋

 

1. Dockerfile 을 이용한 이미지 생성

1.1 이미지 생성을 위한 파일 정의

$ vi Dockerfile         ←  vi편집기를 이용하여 아래 내용 입력

FROM busybox  
MAINTAINER ppusari <ppusarida@gmail.com>  
CMD /bin/echo "hello world"

vi 편집기로 타이핑한 모습

1.2 Docker 이미지 빌드

$ docker build -t ppusari/hello_world .  ←  build 명령어를 이용하여 Dockerfile 에 정의된 이미지를 생성한다.

이미지 생성하는 모습
생성된 이미지 확인

1.3 만든 이미지 실행

$ docker run ppusari/hello_world          ←  이미지가 동작되는지(잘 생성 되었는지) 확인

이미지를 실행한 모습

 

 

2. docker-compose 을 이용한 이미지 생성

 

2.1 이미지를 생성하기 위한 컨테이너 속성 정의

$ vi redmine.yml      <-- vi 편집기를 이용하여 아래 내용으로 redmine.yml 파일을 만든다.

version: '3.1'

services:

  redmine:
    container_name: my-redmine
    image: redmine
    restart: always
    ports:
      - 3000:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: 12345qwert
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_ENCODING: utf8
      #REDMINE_NO_DB_MIGRATE: true
    volumes:
      - /redmine/data:/usr/src/redmine/files
      - /redmine/plugins:/usr/src/redmine/plugins
      - /redmine/themes:/usr/src/redmine/public/themes

  db:
    container_name: my-mariadb
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: qwer1234
      MYSQL_DATABASE: redmine
    volumes:
      - /home/dockermariadb:/var/lib/mysql
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci

위 정의된 내용은 redmine과 db를 각각 컨테이너로 만들겠다는 의미
my-redmine은 redmine컨테이너의 이름을 정의
3000포트는 외부로 서비스 할때 3000포트를 사용하겠다란 의미
12345qwert 은 redmine 초기 패스워드를 정의
my-mariadb는 DB 컨테이너 이름 정의
qwer1234 는 DB 자체 패스워드를 정의

2.2 이미지 생성하기

$ docker-compose -f redmine.yml up

 

2.3 생성된 컨테이너 확인하기

$ docker ps

docker-compose 를 이용하여 생성된 컨테이너를 확인하는 모습

 

 

3. 이미지  업로드 (commit)

 

3.1 이미지 테그 

$ docker tag centos:latest ppusari.iptime.org:5000/centos7:0.0.1      <-  centos:latest  를 ppusari.iptime.org:5000/centos7:0.0.1 로 테그 변경

 

3.2 이미지 커밋

$ docker commit -m "centos7" -a "optiona" centos7 ppusari.iptime.org:5000/centos7:0.0.1  <- centos7 이름으로 구동중인  컨테이너를 ppusari.iptime.org:5000/centos7:0.0.1 이름으로 tag 된 곳에 커밋하기

 

3.2 이미지 업로드

$ docker push ppusari.iptime.org:5000/centos7:0.0.1 <- ppusari.iptime.org:5000 서버에  centos7:0.0.1 이미지를 업로드

 

728x90
반응형
LIST