Docker

Docker Commands


  • Installing Docker on Mac OS X

https://docs.docker.com/installation/mac/


  • boot2docker start

$ boot2docker start



  • attach ( Attach to a running container )

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
adead7a08f15 ubuntu:14.04 /bin/bash About an hour ago Up 27 minutes myubuntu

$ docker attach myubuntu
root@adead7a08f15:/#



  • build ( Build an image from a Dockerfile )

$ vim Dockerfile

FROM centos:centos6
MAINTAINER Dongri Jin

RUN yum update -y && \
rpm --import http://nginx.org/keys/nginx_signing.key && \
yum install -y http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm && \
yum install -y nginx

EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]

$ docker build -t ngix .

$ docker images

$ docker run -d -p 80:80 nginx

$ VBoxManage controlvm "boot2docker-vm" natpf1 "nginx,tcp,127.0.0.1,8080,,80"

$ open http://localhost:8080



  • commit ( Create a new image from a container's changes )

$ docker run -i -t -d nginx                       

ea21748dddd379d8959373cd366b1eb10f4193a68c530c3539fe110b0531bd22

$ docker docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea21748dddd3 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 3 seconds 80/tcp tender_fermi

$ docker commit ea21748dddd3 my-nginx
69f023fe647655f984afd0617dd1e65d8b9a2e5e551bac32af5e6436bfe3ac70

$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
my-nginx latest 69f023fe6476 About an hour ago 267.8 MB
nginx latest 9bc094d3c806 About an hour ago 267.8 MB



  • cp ( Copy files/folders from a container's filesystem to the host path )

$ docker run -d nginx

69e4211b565349631845e984a5914688a250671764c98c959236fb53d059a709

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e4211b5653 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 1 seconds 80/tcp distracted_curie

$ docker cp 69e4211b5653:/usr/share/nginx/html/index.html ./

$ ls -l
total 16
-rw-r--r-- 1 dongri staff 332 Nov 29 17:41 Dockerfile
-rw-r--r-- 1 dongri staff 612 Sep 16 22:57 index.html



  • diff ( Inspect changes on a container's filesystem )

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e4211b5653 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 3 minutes 80/tcp distracted_curie

$ docker diff 69e4211b5653
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
A /var/cache/nginx/scgi_temp
A /var/cache/nginx/uwsgi_temp
C /var/run
A /var/run/nginx.pid



  • events ( Get real time events from the server )

$ docker events

[2014-11-29 17:09:17 +0900 JST] d9860be76a657a: (from my-nginx:latest) create
[2014-11-29 17:09:17 +0900 JST] d9860be76a657a: (from my-nginx:latest) start
[2014-11-29 17:09:17 +0900 JST] d9860be76a657a: (from my-nginx:latest) die
[2014-11-29 17:09:42 +0900 JST] 94d8ff9c9b006b: (from nginx:latest) create
[2014-11-29 17:09:42 +0900 JST] 94d8ff9c9b006b: (from nginx:latest) start
[2014-11-29 17:10:19 +0900 JST] 94d8ff9c9b006b: (from nginx:latest) die



  • export ( Stream the contents of a container as a tar archive)

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e4211b5653 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 9 minutes 80/tcp distracted_curie

$ docker export 69e4211b5653 > nginx.tar



  • history ( Show the history of an image )

$ docker history nginx

IMAGE CREATED CREATED BY SIZE
9bc094d3c806 About an hour ago /bin/sh -c #(nop) ENTRYPOINT [/usr/sbin/nginx 0 B
bc8b862f52f2 About an hour ago /bin/sh -c #(nop) EXPOSE map[80/tcp:{}] 0 B
6a7c1a5d6e92 About an hour ago /bin/sh -c yum update -y && rpm --import 52.02 MB
7becd8731a8d About an hour ago /bin/sh -c #(nop) MAINTAINER Dongri Jin 0 B
70441cac1ed5 3 weeks ago /bin/sh -c #(nop) ADD file:87e3d5074ec1720805 215.8 MB
5b12ef8fd570 8 weeks ago /bin/sh -c #(nop) MAINTAINER The CentOS Proje 0 B
511136ea3c5a 17 months ago 0 B

$



  • images ( List images )

$ docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
my-nginx latest 69f023fe6476 About an hour ago 267.8 MB
nginx latest 9bc094d3c806 About an hour ago 267.8 MB
centos centos6 70441cac1ed5 3 weeks ago 215.8 MB
ubuntu 14.04 c4ff7513909d 3 months ago 225.4 MB
ubuntu latest c4ff7513909d 3 months ago 225.4 MB



  • import ( Create a new filesystem image from the contents of a tarball )

$ cat nginx.tar | docker import - nginx:import                                                                                                                                                    254714ba37221092c47f22a886c7f7497ed65da53d42cf24a4f44e0054305af4


$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
nginx import 254714ba3722 About an hour ago 242.8 MB
my-nginx latest 69f023fe6476 About an hour ago 267.8 MB
nginx latest 9bc094d3c806 About an hour ago 267.8 MB



  • info ( Display system-wide information )

$ docker info



  • inspect ( Return low-level information on a container )

$ docker inspect 69e4211b5653



  • kill ( Kill a running container )

$ docker ps                        

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e4211b5653 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 23 minutes 80/tcp distracted_curie

$ docker kill 69e4211b5653
69e4211b5653

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES



  • load ( Load an image from a tar archive )

$ docker load < nginx.tar



  • login ( Register or log in to the Docker registry server )

$ docker login

Username: dongri
Password: ***
Email: ***@gmail.com
Login Succeeded

$ docker pull ubuntu



  • logs ( Fetch the logs of a container )

$ docker logs 108233ba9a1d



  • port ( Lookup the public-facing port that is NAT-ed to PRIVATE_PORT )

$ docker run -d -p 80:80 nginx

108233ba9a1df0aa199a8392d052f3c0cd8e7929bdeff6d5fa52ac47a75aa603

$ docker port 108233ba9a1d 80
0.0.0.0:80



  • pause ( Pause all processes within a container )

$ docker pause 108233ba9a1d

108233ba9a1d

$ open http://localhost:8080



  • ps ( List containers )

$ docker ps


$ docker ps -a

$ docker ps -a -q



  • pull ( Pull an image or a repository from a Docker registry server )

$ docker pull golang:1.4rc1



  • push ( Push an image or a repository to a Docker registry server )

$ docker run -i -t -d golang

921dc8b1555af7507f8669883724047b4cc114be0681a07f86def

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16f79ec35b99 golang:latest /bin/bash About an hour ago Up 4 seconds focused_newton
108233ba9a1d nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 15 minutes (Paused) 0.0.0.0:80->80/tcp nostalgic_almeida

$ docker commit 16f79ec35b99 dongri/golang
da5a0042ad9ac478c38fc743c8f981f292a9aefd41ac54276a6617c319719ad1

$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dongri/golang latest da5a0042ad9a About an hour ago 448 MB
nginx import 254714ba3722 About an hour ago 242.8 MB
my-nginx latest 69f023fe6476 2 hours ago 267.8 MB
nginx latest 9bc094d3c806 2 hours ago 267.8 MB
golang 1.4rc1 a9e27473d0f8 2 days ago 467.7 MB
golang latest ebd3fd90ae2e 2 days ago 448 MB

$ docker push dongri/golang
The push refers to a repository [dongri/golang] (len: 1)
Sending image list
Pushing repository dongri/golang (1 tags)
511136ea3c5a: Image already pushed, skipping
36fd425d7d8a: Image already pushed, skipping
aaabd2b41e22: Image already pushed, skipping
cd9d7733886c: Image already pushed, skipp
da5a0042ad9a: Image successfully pushed
Pushing tag for rev [da5a0042ad9a] on {https://cdn-registry-1.docker.io/v1/repositories/dongri/golang/tags/latest}



  • restart ( Restart a running container )

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16f79ec35b99 golang:latest /bin/bash About an hour ago Up 3 minutes focused_newton
108233ba9a1d nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 18 minutes (Paused) 0.0.0.0:80->80/tcp nostalgic_almeida

$ docker restart 16f79ec35b99
16f79ec35b99



  • rm ( Remove one or more containers )

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS
16f79ec35b99 golang:latest /bin/bash About an hour ago Up 55 seconds
714a086c9e4d golang:latest /bin/bash About an hour ago Exited (1) 4 minutes ago

$ docker rm 714a086c9e4d
714a086c9e4d

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
16f79ec35b99 golang:latest /bin/bash About an hour ago Up About a minute



  • rmi ( Remove one or more images )

$ docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dongri/golang latest da5a0042ad9a About an hour ago 448 MB
nginx import 254714ba3722 About an hour ago 242.8 MB
my-nginx latest 69f023fe6476 2 hours ago 267.8 MB

$ docker rmi 69f023fe6476

$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dongri/golang latest da5a0042ad9a About an hour ago 448 MB
nginx import 254714ba3722 About an hour ago 242.8 MB



  • run ( Run a command in a new container )

$ docker run -d nginx




  • save ( Save an image to a tar archive )

$ docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dongri/golang latest da5a0042ad9a About an hour ago 448 MB
nginx import 254714ba3722 About an hour ago 242.8 MB

$ docker save nginx > mynginx.tar



  • search ( Search for an image on the Docker Hub )

$ docker search dongri

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
dongri/coreos 2
dongri/node 1
dongri/nginx 0
dongri/redis 0
dongri/golang 0



  • start ( Start a stopped container )

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
108233ba9a1d nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 27 minutes (Paused) 0.0.0.0:80->80/tcp
269367b4bd87 nginx:latest /usr/sbin/nginx -g ' About an hour ago Exited (-1) 28 minutes ago

$ docker start 269367b4bd87
269367b4bd87

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
108233ba9a1d nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 27 minutes (Paused) 0.0.0.0:80->80/tcp nostalgic_almeida
269367b4bd87 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 2 seconds 80/tcp kickass_perlman



  • stop ( Stop a running container )

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
108233ba9a1d nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 27 minutes (Paused) 0.0.0.0:80->80/tcp nostalgic_almeida
269367b4bd87 nginx:latest /usr/sbin/nginx -g ' About an hour ago Up 2 seconds 80/tcp kickass_perlman

$ docker stop 269367b4bd87



  • tag ( Tag an image into a repository )

$ docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dongri/golang latest da5a0042ad9a About an hour ago 448 MB
nginx import 254714ba3722 About an hour ago 242.8 MB

$ docker tag 254714ba3722 nginx:export
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dongri/golang latest da5a0042ad9a About an hour ago 448 MB
nginx import 254714ba3722 About an hour ago 242.8 MB
nginx export 254714ba3722 About an hour ago 242.8 MB



  • top ( Lookup the running processes of a container )

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
108233ba9a1d 9bc094d3c806 /usr/sbin/nginx -g ' About an hour ago Up 38 minutes (Paused) 0.0.0.0:80->80/tcp nostalgic_almeida

$ docker top 108233ba9a1d
PID USER COMMAND
1658 root nginx: master process /usr/sbin/nginx -g daemon off;
1668 499 nginx: worker process



  • unpause ( Unpause a paused container )

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
108233ba9a1d 9bc094d3c806 /usr/sbin/nginx -g ' About an hour ago Up 38 minutes (Paused) 0.0.0.0:80->80/tcp nostalgic_almeida

$ docker unpause 108233ba9a1d
108233ba9a1d

$ open http://localhost:8080



  • version ( Show the Docker version information )

$ docker version

Client version: 1.1.1
Client API version: 1.13
Go version (client): go1.2.1
Git commit (client): bd609d2
Server version: 1.1.2
Server API version: 1.13
Go version (server): go1.2.1
Git commit (server): d84a070



  • wait ( Block until a container stops, then print its exit code )

$ docker wait 108233ba9a1d


$ docker stop 108233ba9a1d