- Docker Hub에서image를 검색
docker search [OPTIONS] TERM
XE3 & XEHub
Container & Image 사용법
7.
- Docker Hub에서image를 다운로드
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- image 이름 뒤에 태그가 없으면 기본으로
latest 이미지를 다운로드
XE3 & XEHub
[image의 특정 버전이나 태그를 지정해서 다운로드]
Container & Image 사용법
docker images [OPTIONS] [REPOSITORY[:TAG]]]
- 다운로드 받은 image의 목록을 출력
8.
- image를 container로생성
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
XE3 & XEHub
Container & Image 사용법
-i : container에 STDIN을 연결
-t : container에 터미널을 할당
— name : container에 이름을 지정
- container의 목록 출력
docker ps [OPTIONS]
-a : 모든 상태의 container 출력
9.
- 정지 상태인container를 시작
docker start [OPTIONS] CONTAINER [CONTAINER...]
XE3 & XEHub
Container & Image 사용법
- 실행 상태인 container에 접근
docker attach [OPTIONS] CONTAINER
10.
- image를 새로운container로 만들어서 실행
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
[이미지가 저장되어 있는 상태에서 run 했을 때]
XE3 & XEHub
[그냥 실행 했을 때와 command를 지정 했을 때의 차이]
Container & Image 사용법
11.
XE3 & XEHub
-container 관리
docker container COMMAND
prune : 종료된 모든 container 삭제
Container & Image 사용법
docker commit [OPTIONS]CONTAINER [REPOSITORY[:TAG]]
XE3 Image 만들기
XE3 & XEHub
[php가 설치된 container image로 만들기]
- container를 image로 생성
-m : 변경 내역을 메시지를 저장
XE3 Image 만들기
XE3& XEHub
[xe container와 mysql container 연결]
-d : deattach mode로 실행
-e : 환경변수를 설정
[mysql container가 실행 중]
34.
- 실행중인 container에command를 실행
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
[-e MYSQL_DATABASE로
XE3 Image 만들기
XE3 & XEHub
[xe container와 mysql container 연결]
지정한 테이블이 생성]
35.
- service apache2start
XE3 Image 만들기
XE3 & XEHub
[ubuntu Image 생성하고 php install]
—link : 다른 container와의 연결을 추가
- 127.0.0.1 접속 후 xe 설치
- Database Host는 mysql container의 이름
FROM : 생성할image의 base image
Dockerfile로 XE3 이미지 만들기
XE3 & XEHub
FROM ubuntu:latest
LABEL "maintainer"="sirwoongke"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install php php-fpm php-mbstring php-dom php-zip php-pdo
php-tokenizer php-xml php-ctype php-json php-mysql php-curl php-gd php-cgi php-
cli -y
RUN apt-get install curl git apache2 -y
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
WORKDIR /var/www
RUN git clone https://github.com/xpressengine/xpressengine.git
WORKDIR /var/www/xpressengine
RUN composer install
RUN chgrp -R www-data /var/www/xpressengine
RUN chmod -R 775 /var/www/xpressengine
ADD xe.conf /etc/apache2/sites-available
RUN a2dissite 000-default.conf
RUN a2ensite xe.conf
RUN a2enmod rewrite
RUN service apache2 restart
CMD apachectl -DFOREGROUND
LABEL : image의 meta-data
ENV : Dockerfile에서 사용할 환경변수 지정
RUN : build 과정 중 container 내부에서
실행할 명령
ENV : Dockerfile에서 사용할 환경변수 지정
WORKDIR : 명령어를 실행할 디렉터리를 지정
RUN 명령어로 cd를 할 경우 다음 실행할 명령어 실행 전에 root 디렉터리로
이동하기 때문에 디렉터리 이동은 WORKDIR 명령어를 사용
ADD : 로컬에 있는 파일을 지정한 image의 경로에 추가
CMD : container가 시작될 때 실행한 명령어
docker run에서 받는 command로 무시 될 수 있음
docker-compose로 XE3 바로사용하기
XE3 & XEHub
- 여러 개의 container를 사용해서 애플리케이션을 실행 할 때 하나의 서비스로 정의해서 관리
docker-compose?
- docker-compose.yml 작성된 설정 내용으로 container를 생성
- 앞서 작성한image나 Dockerfile을 사용하면 container가 종료 되면서 database의
data가 손실되고 source code를 수정 하기가 불편하다는 문제가 있음
XE3 & XEHub
개발 환경과 source code 분리하기
- 개발에 필요한 php, apache, composer 등 인프라 부분은 container를 활용하고
source code는 host에서 작업하는 분리가 필요
- 개발 환경 공유는 개발 환경에 대한 설정을 작성한 image나 Dockerfile을 공유해서 개발 환경을 공유
- database의 손실은 database data의 저장을 local에 저장 해서 database container가 다시 시작
되더라도 기존에 저장된 database data를 사용하도록 설정
54.
- php, apache가설치된 image 생성
xpressengine : source code가 저장된 폴더
XE3 & XEHub
개발 환경과 source code 분리하기
database : database의 data가 저장될 폴더
55.
-v : 호스트와volume을 공유
XE3 & XEHub
개발 환경과 source code 분리하기
[database data local에 저장]
: 명령어 줄바꿈