DOCKER 자주 사용하는 명령어 모음

Server 0 7,259

DOCKER를 사용하면서 많이 사용하는 명령어들을 모아보았습니다.


  • search 도커허브에서 이미지 검색
  • pull 도커허브에서 이미지 다운로드
  • images 로컬에 있는 도커 이미지 목록 보기
  • run 도커이미지로 컨테이너 생성하기
  • ps 로컬에 생성된 도커 컨테이너 목록 보기
  • attach 도커 컨테이너에 접속하기
  • exec 도커 컨테이너에 명령 실행하기
  • start 도커 컨테이너 실행하기
  • stop 도커 컨테이너 정지하기
  • restart 도커 컨테이너 재시작하기
  • commit 도커 컨테이너 변경사항 이미지로 생성하기
  • rm 도커 컨테이너 삭제하기
  • rmi 도커 이미지 삭제하기
  • network create 도커 네트워크 생성하기
  • network connect 도커 네트워크에 컨테이너 연결하기
  • network disconnect 도커 네트워크에서 컨테이너 연결끊기
  • network inspect 도커 네트워크 상세정보 보기
  • network rm 도커 네트워크 삭제하기
  • network ls 도커 네트워크 목록 보기

docker search를 이용하여 도커허브에서 이미 생성된 수많은 Pre-Build 이미지를 검색 할 수 있다.

$ docker search [이미지이름]


우분투 Apache2 PHP조합의 웹서버를 찾고 싶다면 docker search "ubuntu apache2 php"로 search명령을 실행 하면 된다.

docker search를 실행 하였을 경우 나오는 각 필드를 살펴보면 다음 과 같다.

  • NAME은 이미지 이름
  • DESCRIPTION은 이미지에 대한 설명
  • STARS는 사용자들이 이미지를 추천한 횟수
  • OFFICIAL은 공식 이미지
  • AUTOMATED 특정한 설정이 완료된 자동화된 이미지

우리는 우분투 환경에서 Apache2와 php가 설치된 이미지를 찾으려고 하고 있으므로 AUTOMATED[OK]인 이미지가 우리가 찾는 이미지이다.

$ docker search "ubuntu apache2 php"
NAME                                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating s...   6276      [OK]       
php                                                       While designed for web development, the PH...   2521      [OK]       
php-zendserver                                            Zend Server - the integrated PHP applicati...   115       [OK]       
ubuntu-upstart                                            Upstart is an event-based replacement for ...   74        [OK]       
ubuntu-debootstrap                                        debootstrap --variant=minbase --components...   30        [OK]       
tetraweb/php                                              PHP 5.5, 5.6, 7.0, 7.1 for CI and running ...   23                   [OK]
webdevops/php                                             PHP (FPM and CLI) service container             17                   [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          13                   [OK]
teamrock/apache2                                          TeamRock''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s Apache2                              5                    [OK]
1and1internet/ubuntu-16-nginx-php-5.6                     ubuntu-16-nginx-php-5.6                         2                    [OK]
1and1internet/ubuntu-16-nginx-php-7.0                     ubuntu-16-nginx-php-7.0                         2                    [OK]
ascdc/apache2-php7                                        apache2 + php7                                  2                    [OK]
1and1internet/ubuntu-16-apache-php-7.0                    ubuntu-16-apache-php-7.0                        1                    [OK]
appsvc/php                                                Azure App Service php dockerfiles               1                    [OK]
ascdc/apache2-php56                                       apache2-php56                                   1                    [OK]
1and1internet/ubuntu-16-apache-php-5.6-drupal-8           ubuntu-16-apache-php-5.6-drupal-8               1                    [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4         ubuntu-16-nginx-php-5.6-wordpress-4             1                    [OK]
mobingi/ubuntu-apache2-php5                                                                               1                    [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10   ubuntu-16-nginx-php-phpmyadmin-mariadb-10       1                    [OK]
1and1internet/ubuntu-16-apache-php-7.1                    ubuntu-16-apache-php-7.1                        0                    [OK]
mobingi/ubuntu-apache2-php7                               ubuntu-apache2-php7                             0                    [OK]
jeffutter/apache2-php                                     Docker Image with apache2, php5.5 and php ...   0                    [OK]
antage/apache2-php5                                       Docker image for running Apache 2.x with P...   0                    [OK]
pamtrak06/ubuntu14.04-apache2                             ubuntu14.04-apache2                             0                    [OK]
1and1internet/ubuntu-16-apache-php-5.6                    ubuntu-16-apache-php-5.6                        0                    [OK]

docker search를 이용하여 검색한 이미지를 다운로드 하기 위해서는 docker pull명령어를 이용한다.

$ docker pull [이미지이름]


검색된 이미지중에 우분투 Apache2 PHP 이미지인 "ascdc/apache2-php7"를 다운로드 받으려고 한다면 다음과 같다.

$ docker download "ascdc/apache2-php7"

docker pull을 이용하여 가져온 이미지를 컨테이너로 생성하기 위해서는 docker run명령어를 이용해야 한다.

$ docker run -i -t --name [컨테이너이름] [이미지이름] [실행할 명령어]


다운로드 받은 "ascdc/apache2-php7"를 웹서버용으로 만들기 위해서 --name을 webserver로 하고 컨테이너를 생성한다.

$ docker run -i -t --name webserver "ascdc/apache2-php7" /bin/bash

위와 같이 컨테이너를 생성하였을경우 exit명령 또는 Ctrl+D를 이용하면 컨테이너가 정지된다.


만약, 데몬모드로 컨테이너를 생성하기 위해서는 "-i -t"옵션 대신 "-d"옵션으로 컨테이너를 생성 해 준다.

$ docker run -d --name webserver "ascdc/apache2-php7"


마지막으로 웹서비스를 위한 컨테이너이므로 80(http)포트와 443(https)를 도커호스트에 맵핑해주어야 한다. 이경우 "-p 80:80 -p 443:443" 옵션을 추가적으로 입력 한다.

$ docker run -d -p 80:80 -p 443:443 --name webserver "ascdc/apache2-php7"

run 명령어 옵션

  • -d 백그라운드로 컨테이너를 생성
  • -i -t 포그라운드로 컨테이너를 생성 (이 경우 커맨드라인 맨 마지막에 실행할 명령어를 같이 입력)
  • -p 컨테이너 포트와 호스트 포트를 맵핑
  • -v 컨테이너의 특정 디렉토리를 호스트와 맵핑

정지된 컨테이너를 시작(실행)하기 위해서는 docker start 명령어를 사용한다.

docker start 명령어는 물리적으로 서버의 전원을 켜는 행동으로 이해 하면 된다.

$ docker start [컨테이너이름]


앞서 생성한 webserver 컨테이너를 시작하기 위해서는 다음과 같이 명령어를 실행 한다.

$ docker start webserver

실행중인 컨테이너를 정지하기 위해서는 docker stop 명령어를 사용한다.

docker stop 명령어는 물리적으로 서버의 전원을 끄는 행동으로 이해 하면 된다.

$ docker stop [컨테이너이름]


앞서 생성한 webserver컨테이너를 정지하기 위해서는 다음과 같이 명령어를 실행 한다.

$ docker start webserver

실행중인 컨테이너를 재시작하기 위해서는 docker restart 명령어를 사용한다.

docker restart 명령어는 물리적으로 서버의 재시작 버튼을 누르는 행동으로 이해 하면 된다.

$ docker restart [컨테이너이름]


앞서 생성한 webserver 컨테이너를 재시작하기 위해서는 다음과 같이 명령어를 실행 한다.

$ docker restart webserver
목록