IT. POST LIST

POST ALL LABEL

DOCKER - 기본 명령어

By 때찌때찌맴매 - 4월 05, 2018


** docker 기본 명령어


[ 버젼 확인 ]

[root@localhost 04:06:41:~]# docker version 
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: 
 Go version:      go1.8.3
 Git commit:      774336d/1.13.1
 Built:           Wed Mar  7 17:06:16 2018
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: 
 Go version:      go1.8.3
 Git commit:      774336d/1.13.1
 Built:           Wed Mar  7 17:06:16 2018
 OS/Arch:         linux/amd64
 Experimental:    false

[ ps는 현재 구동중인 프로세스. -a는 모든 프로세스. ]

[root@localhost 04:06:41:~]# docker ps
CONTAINER ID        IMAGE       COMMAND         CREATED          STATUS         PORTS                    NAMES
a4f8a54d9d9c        mysql:5.7   "docker-ent…"   14 minutes ago   Up 14 minutes  0.0.0.0:3306->3306/tcp   mysql
a74d46cd07ea        dorowu/ub…  "/startup.sh"   24 hours ago     Up 24 hours    0.0.0.0:6080->80/tcp     udt

[root@localhost 04:06:41:~]# docker ps -a
CONTAINER ID        IMAGE       COMMAND         CREATED          STATUS         PORTS                    NAMES
8bfe528d868d        centos      "/bin/bash"     20 seconds ago   Exited (130) 3 seconds ago              centos7
a4f8a54d9d9c        mysql:5.7   "docker-e…"     14 minutes ago   Up 14 minutes  0.0.0.0:3306->3306/tcp   mysql
a74d46cd07ea        dorowu/ub…  "/startup.sh"   24 hours ago     Up 24 hours    0.0.0.0:6080->80/tcp     udt

* docker ps -a 명령어로 확인 시 종료된 컨테이너 까지 모두 확인이 가능 합니다.


[ 이미지 다운(pull) 및 실행(run) 그리고 옵션 ]

* 이미지 다운 및 실행. 아래 명령어로 진행하게 되면 이미지를 다운 받고, 컨테이너 생성후 종료됨. ps -a 로 확인 가능합니다.
docker run [OPTIONS] NAME[:TAG|@DIGEST]
[root@localhost ]# docker run ubuntu:16.04

* -if 옵션은 쉘로들어가게 되고, /bin/bash 커맨드를 사용합니다. --rm 옵션은 프로세스가 종료되면 컨테이너가 자동으로 삭제. ctrl+d 또는 exit 사용시 해당 컨테이너가 종료 됩니다.
[root@localhost ]# docker run --rm -it ubuntu:16.04 /bin/bash
[root@18ed36a4b469 /]#


* -d 옵션은 컨테이너를 백그라운드에서 구동 하게끔 하는 옵션입니다. -d 옵션을 사용하여 os컨테이너를 실행하면 컨테이너 생성과 동시에 백그라운드로 구동이 됩니다.
[root@localhost]# docker run -d -it --rm --name root ubuntu:16.04 /bin/bash
92231447e2abc5625a672234ec8b520e0ac951070a6a83418fafc3538ec8491f
[root@localhost 01:52:42:~]# docker ps -a
CONTAINER ID        IMAGE       COMMAND         CREATED           STATUS        PORTS                    NAMES
92231447e2ab        ubuntu:16…  "/bin/bash"     5 seconds ago  Up 4 seconds                          root

* --name ubuntu16.04 는 생성되는 컨테이너의 명칭을 지정해 줍니다.  --name 옵션을 사용하지 않을 경우 랜덤으로 컨테이너명이 생성 됩니다.
[root@localhost ]# docker run --rm -it --name ubuntu16.04 ubuntu:16.04 /bin/bash  

* pull 을 사용하고, 원하는 이미지명을 입력하면, 관련된 최신 이미지들이 다운 됩니다. run 은 이미지를 다운 받고, 컨테이너를 생성하지만, pull 은 이미지만 다운 받게 됩니다.
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
[root@localhost ]# docker pull ubuntu:16.04


[ 컨테이너 시작 및 중지 그리고 명령어(exec) 실행 ]

* 도커 ID의 전체 길이는 64자리 입니다. 하지만 명령어의 인자로 전달할 때는 전부 입력하지 않아도 됩니다. 예를 들어 ID가 abcdefgh...라면 abcd만 입력해도 됩니다. 앞부분이 겹치지 않는다면 1-2자만 입력해도 됩니다.
docker start {NAMES || CONTAINER ID}
docker stop {NAMES || CONTAINER ID}

[ EX. mysql ]
[root@localhost ]# docker start mysql
[root@localhost ]# docker stop a4f8a54d9d9c

[ EX. os ]
[root@localhost ]# docker start centos7

* 컨테이너를 구동 후 exec 사용하여 os 컨테이너에 접근할 수 있습니다.
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

[root@localhost ]# docker exec -it centos7 /bin/bash
[root@8bfe528d868d /]#

[root@localhost]# docker exec -it mysql mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

[ 컨테이너 및 이미지 삭제 ]

** 컨테이너 제거 
docker rm {NAMES || CONTAINER ID}

[ex]
[root@localhost ]# docker rm mysql
[root@localhost ]# docker rm a4f8a54d9d9c

*명령어를 입력하면 중지된(Exit 상태) 컨테이너 ID를 가져와서 한번에 삭제
[root@localhost ]# docker rm -v $(docker ps -a -q -f status=exited)
또는 
[root@localhost ]# docker rm $(docker ps --filter 'status=exited' -a -q)


*모든 컨테이너 삭제하기
[root@localhost ]# docker stop $(docker ps -a -q)
[root@localhost ]# docker rm $(docker ps -a -q)


** 이미지 확인 및 삭제
[root@localhost ]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 5195076672a7        12 days ago         371MB
ubuntu              16.04               f975c5035748        2 weeks ago         112MB

docker rmi [OPTIONS] IMAGE [IMAGE...]
docker rmi ${TENSORFLOW_IMAGE_ID}

* 모든 이미지 삭제
[root@localhost ]# docker rmi $(docker images -q)

[  컨테이너 로그 확인 ]

docker logs [OPTIONS] CONTAINER
docker logs {NAMES || CONTAINER ID} # 전체 로그
docker logs --tail 10 {NAMES || CONTAINER ID} # 하단 10줄 로그
docker logs -f {NAMES || CONTAINER ID} # 실시간 로그

  • Share:

You Might Also Like

0 개의 댓글