Docker 설치 및 기본 사용 방법

간단한 설치 방법 및 기본 사용 방법에 대해 설명하도록 하겠습니다.

 

Amazon Web Services(AWS) EC2(Ubuntu)를 생성

(기본으로 AWS의 EC2에서는 docker 패키지를 사용 가능)


docker 설치

$ sudo apt-get install docker.io


서비스 등록

$ sudo update-rc.d docker.io defaults


Docker Engine 정보 확인

$ sudo docker.io info

Containers: 0

Images: 0

Storage Driver: devicemapper

 Pool Name: docker-202:1-18845-pool

 Data file: /var/lib/docker/devicemapper/devicemapper/data

 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata

 Data Space Used: 291.5 Mb

 Data Space Total: 102400.0 Mb

 Metadata Space Used: 0.7 Mb

 Metadata Space Total: 2048.0 Mb

Execution Driver: native-0.1

Kernel Version: 3.13.0-24-generic

WARNING: No swap limit support



docker 명령어로 사용하기 위한 심볼릭 링크 생성

$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker


docker 명령어에 대한 권한 부여 (ubuntu도 사용할 수 있도록)

$ sudo usermod -G docker ubuntu


ubuntu 사용자로 logout->login하고 docker info 명령어 실행

$ docker info

Containers: 0

Images: 0

Storage Driver: devicemapper

 Pool Name: docker-202:1-18845-pool

 Data file: /var/lib/docker/devicemapper/devicemapper/data

 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata

 Data Space Used: 291.5 Mb

 Data Space Total: 102400.0 Mb

 Metadata Space Used: 0.7 Mb

 Metadata Space Total: 2048.0 Mb

Execution Driver: native-0.1

Kernel Version: 3.13.0-24-generic

WARNING: No swap limit support



Dicker 클라이언트 / 서버 확인

$ docker version

Client version: 0.9.1

Go version (client): go1.2.1

Git commit (client): 3600720

Server version: 0.9.1

Git commit (server): 3600720

Go version (server): go1.2.1

Last stable version: 1.0.0, please update docker




ubuntu 이미지 Docker Hub Regstry에서 다운로드

$ docker pull ubuntu:latest

Pulling repository ubuntu

ad892dd21d60: Download complete

511136ea3c5a: Download complete

e465fff03bce: Download complete

23f361102fae: Download complete

9db365ecbcbb: Download complete 



다운로드 이미지 확인

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

ubuntu              latest              ad892dd21d60        7 days ago          275.4 MB 



Docker Container 생성 및 실행

$ docker run [옵션] [--name {컨테이너명}] {이미지명}[:{태그명}] [컨테이너로 실행할 명령어] [변수]


중요 옵션

-d : 백그라우드 실행. 

-i : 컨터이너의 표준 입력. /bin/bash등으로 컨테이너를 조작할 때 지정.

-t : tty(단말 디바이스)를 확보. /bin/bash등으로 컨테이너를 조작할 때 지정.

-p {호스트 포트번호} : {컨테이너 포트번호}  : Docker서버의 호스트와 포트 맵핑을 구성



ubuntu이미지에서 ubuntu1 컨테이너를 생성

$ docker run -it --name ubuntu1 ubuntu /bin/bash

root@b5c2f7a3f4de:/# 



nginx 설치 및 확인

root@b5c2f7a3f4de:/# apt-get update

root@b5c2f7a3f4de:/# apt-get install -y nginx


root@b5c2f7a3f4de:/# dpkg -l nginx

Desired=Unknown/Install/Remove/Purge/Hold

| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend

|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)

||/ Name                                                 Version                         Architecture                    Description

+++-====================================================-===============================-===============================-==============================================================================================================


ii  nginx                                                1.4.6-1ubuntu3                  all                             small, powerful, scalable web/proxy server

root@b5c2f7a3f4de:/# 


[Ctrl]+[d]로 bash 종료

- 종료하면 컨테이너 ubuntu1은 정지 상태가 된다.



Docker 컨테이너 리스트 확인

$ docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

b5c2f7a3f4de        ubuntu:latest       /bin/bash           12 minutes ago      Exit 0                                ubuntu1  


STATUS 항목 - 실행중 = UP {실행시간} / 정지 = Exit {종료코드}



Docker 이미지 생성

$ docker commit {컨테이너명}|{컨테이너 ID} [{사용자명}/]{이미지명}


$ docker commit ubuntu1 park/nginx

948a317510591c8af2ca49e205cc0558141ce5e18acc98c0e834cc8e93cf86cd



생성된 이미지 확인

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

park/nginx          latest              948a31751059        2 minutes ago       295.9 MB

ubuntu              latest              ad892dd21d60        7 days ago          275.4 MB



Docker 컨테이너를 백그라운드에서 실행

$ docker run -d -p 80:80 --name nginx1 park/nginx /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

06f09849c046f5a949e7d82f52b140cfecd85b2d5f813a12c0adb431a5ea7a52




컨테이너 실행 상태 확인

$ docker ps

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                NAMES

06f09849c046        park/nginx:latest   /usr/sbin/nginx -g d   27 seconds ago      Up 25 seconds       0.0.0.0:80->80/tcp   nginx1




웹 서비스 기동 상태 확인

$ curl localhost:80



Docker 컨테이너 정지

$ docker stop {컨테이너명}|{컨테이너 ID}


$ docker stop nginx1

nginx1


$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES



Docker 컨테이너 삭제 및 이미지 삭제

$ docker rm {컨테이너명}|{컨테이너 ID} => 컨테이너 삭제

$ docker rmi {이미지명}|{이미지ID} => 이미지 삭


$ docker ps -a

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES

06f09849c046        park/nginx:latest   /usr/sbin/nginx -g d   17 minutes ago      Exit 0                                  nginx1

b5c2f7a3f4de        ubuntu:latest       /bin/bash              40 minutes ago      Exit 0                                  ubuntu1



컨테이너 삭제

$ docker rm nginx1

nginx1


$ docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

b5c2f7a3f4de        ubuntu:latest       /bin/bash           40 minutes ago      Exit 0                                  ubuntu1


$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

park/nginx          latest              948a31751059        25 minutes ago      295.9 MB

ubuntu              latest              ad892dd21d60        7 days ago          275.4 MB



이미지 삭제

$ docker rmi park/nginx

Untagged: park/nginx:latest

Deleted: 948a317510591c8af2ca49e205cc0558141ce5e18acc98c0e834cc8e93cf86cd



$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

ubuntu              latest              ad892dd21d60        7 days ago          275.4 MB



Docker 컨테이너 실행

$ docker start [-i] {컨테이너명}|{컨테이너 ID}

$ docker start -i ubuntu1

ubuntu1

       root@b5c2f7a3f4de:/#


반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,