Devops Docker
Docker
컨테이너 기반의 운영환경을 지원
- 크로스 플랫폼 환경에서 호환성 유지에 유리
- 도커 파일을 이용해서 현상 유지에 유리 ( 시간이 지나도 같은 서버 환경을 구축할 수 있음 )
Config
install & uninstall
install
$ curl -fsSL https://get.docker.com/ | sh
$ yum install docker -y
uninstall
$ yum list installed | grep docker
info
$ docker info
version
$ docker version
start & stop
start
$ service docker start
stop
$ service docker stop
Image
docker search
$ docker search <image>
docker pull
$ docker pull <image>:<tag>
docker images
$ docker images
$ docker images | grep <image>
docker image
docker image ls [option] [reop]
--all
,-a
- show all images
--digests
- show digests
--filter
,-f
- filter output based on conditions provided
--format
- pretty-print images using a go template
--no-trunc
- don’t truncate output
--quiet
,-q
- only show numeric IDs
$ docker image ls --all <image>
Container
docker run
-it
-d
-p
--name
$ sudo docker run -d --name <name> -p <os_port>:<container_port> <image>
docker log
Docker File
Docker Image 생성을 위한 명령어 집합 파일
Tutorial Dockerfile
# 이미지
FROM <image>:<tag>
# 관리자
MAINTAINER <username> <<useremail>>
# ARG - 호출방법 $<parameter>
ARG <paramemer>
# WORKDIR
WORKDIR <path>
# ADD - 복사 ( host_path 현재위치 -> Dockerfile )
ADD <host_path> <container_path>
# COPY
COPY <host_path> <container_path>
# RUN - to container
RUN <command>
# ENV
ENV NODE_ENV <profile>
# PORT
EXPOSE <host_port_A> <host_port_B>
# CMD
CMD ["npm", "start"]
NodeJS Sample
# 이미지
FROM node:6.2.2
# 관리자
MAINTAINER SuperMoon <jm921106@gmail.com>
# /app 디렉토리 생성
RUN mkdir -p /app
# /app 디덱토리를 WORKDIR로 설정
WORKDIR /app
# /현재 Dockerfile에 있는 경로의 모든 파일을 /app에 복사
ADD . /app
# npm install 실행
RUN npm install
# 환경변수 설정
ENV NODE_ENV development
# 포트 설정
EXPOSE 3000 80
# 컨테이너 실행 명령
CMD ["npm", "start"]
docker build
-t
$ docker build -t <repo>/<image>:<tag> <build_target_dir>
Docker Compose
docker-compose up -d
docker-compose up
Docker Swarn
참조