** 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} # 실시간 로그