구리의 창고

Docker Container 실행하기 본문

DevOps

Docker Container 실행하기

구리z 2017. 7. 8. 12:23

개요

Docker Container란, OS 커널 위에 Docker Image로 생성된 독립된 하나의 환경을 말한다. 이렇게 독립된 환경을 만듬으로써, 하나의 OS에서 각 Container는 별도의 OS에서 실행되는 것처럼 돌아가게된다. 아래 이미지는 Container 3개가 실행되고 있는 것을 표현한 것이다.
위 그림에서 Docker Container의 독립된 환경의 의미를 간략히 설명하면, 첫 번째 Container의 Tomcat은 두 번째 Container의 SQL Server와 완전 별도의 실행 환경을 갖는다는 것이다. 만약 첫 번째 Container만 재설치를 하고 싶다고 하더라도, 다른 Container 2개에는 아무런 영향을 끼치지 않는다.

예제

일단, Ubuntu에 Docker 설치하기를 보고 Docker를 설치하도록하자.
$ docker -v
Docker version 17.06.0-ce, build 02c1d87
위에서 설명한대로, Container는 Docker Image를 기반으로 만들어진다. Docker Image를 관리하는 Respository인 DockerHub이 있다. 그 중에 가볍고 테스트용으로 사용하기 좋은 busybox Docker Image를 사용하겠다. 참고로 busybox는 Docker에서 공식적으로 제공하는 라이브러리 중 하나이다.

모든 Docker 명령어는 docker [OPTIONS] COMMAND [arg...] 같은 형식으로 실행된다. Container를 생성하고 실행하기 위해서는 아래 명령어가 필요하다.
$ docker run
"docker run" requires at least 1 argument(s).
See 'docker run --help'.

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container
실제로 옵션도 정말 많고 다양하지만 단순히 실행해서 아웃풋만 받아보도록 하겠다.
$ docker run --rm busybox ls
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
27144aa8f1b9: Pull complete
Digest: sha256:be3c11fdba7cfe299214e46edc642e09514dbb9bbefcd0d3836c05a1e0cd0642
Status: Downloaded newer image for busybox:latest
bin
dev
etc
home
proc
root
sys
tmp
usr
var
busybox를 이용해서 생성된 Container안에서 ls 명령어를 실행하고, Container를 종료 후 자동으로 삭제(--rm)해주는 명령어다. 굵게 표시된 부분은, 아직 머신에 busybox가 없어 다운 받아오는 부분이다. 두 번 째 실행하면 굵게 표시된 부분이 없어진다.
$ docker run --rm busybox ls
bin
dev
etc
home
proc
root
sys
tmp
usr
var
머신에 있는 이미지 목록을 보려면, 아래와 같이 보면된다.
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              c30178c5239f        3 weeks ago         1.106 MB


'DevOps' 카테고리의 다른 글

docker-compose 사용  (0) 2017.07.12
docker-compose 설치  (0) 2017.07.12
Chef resource 실행 순서 with notifies  (0) 2017.07.06
Ubuntu에 Docker 설치하기 with Chef  (0) 2017.07.05
Ubuntu에 Docker 설치하기  (0) 2017.07.03
Comments