1.
DockerÃüÁîÐÐ
Docker¹Ù·½ÎªÁËÈÃÓû§¿ìËÙÁ˽âDocker£¬ÌṩÁËÒ»¸ö½»»¥Ê½½Ì³Ì£¬Ö¼ÔÚ°ïÖúÓû§ÕÆÎÕDockerÃüÁîÐеÄʹÓ÷½·¨¡£µ«ÊÇÓÉÓÚDocker¼¼ÊõµÄ¿ìËÙ·¢Õ¹£¬´Ë½»»¥Ê½½Ì³ÌÒѾÎÞ·¨Âú×ãDockerÓû§µÄʵ¼ÊʹÓÃÐèÇó£¬ËùÒÔÈÃÎÒÃÇÒ»Æð¿ªÊ¼Ò»´ÎÕæÕýµÄÃüÁîÐÐѧϰ֮Âá£Ê×ÏÈ£¬DockerµÄÃüÁîÇåµ¥¿ÉÒÔͨ¹ýÔËÐÐ
docker £¬»òÕß docker help ÃüÁîµÃµ½:

ÔÚDockerÈÝÆ÷¼¼Êõ²»¶ÏÑÝ»¯µÄ¹ý³ÌÖУ¬DockerµÄ×ÓÃüÁîÒѾ´ïµ½34¸öÖ®¶à£¬ÆäÖкËÐÄ×ÓÃüÁî(ÀýÈ磺run)»¹»áÓи´ÔӵIJÎÊýÅäÖᣱÊÕßͨ¹ý½áºÏ¹¦ÄܺÍÓ¦Óó¡¾°·½ÃæµÄ¿¼ÂÇ£¬°ÑÃüÁîÐл®·ÖΪ4¸ö²¿·Ö£¬·½±ãÎÒÃÇ¿ìËÙ¸ÅÀÀDockerÃüÁîÐеÄ×é³É½á¹¹£º

1.1 ²ÎÊýÔ¼¶¨
µ¥¸ö×Ö·ûµÄ²ÎÊý¿ÉÒÔ·ÅÔÚÒ»Æð×éºÏÅäÖã¬ÀýÈç
docker run -t -i --name test busybox sh |
¿ÉÒÔÓÃÕâÑùµÄ·½Ê½µÈͬ£º
1.2 Boolean
Boolean²ÎÊýÐÎʽÈ磺 -d=false¡£×¢Ò⣬µ±ÄãÉùÃ÷Õâ¸öBoolean²ÎÊýʱ£¬±ÈÈç docker
run -d=true£¬Ëü½«Ö±½Ó°ÑÆô¶¯µÄContainer¹ÒÆð·ÅÔÚºǫ́ÔËÐС£
1.3 ×Ö·û´®ºÍÊý×Ö
²ÎÊýÈç --name=¡°¡± ¶¨ÒåÒ»¸ö×Ö·û´®£¬Ëü½öÄܱ»¶¨ÒåÒ»´Î¡£Í¬ÀàÐ͵ÄÈç-c=0 ¶¨ÒåÒ»¸öÊý×Ö£¬ËüÒ²Ö»Äܱ»¶¨ÒåÒ»´Î¡£
1.4 ºǫ́½ø³Ì
Dockerºǫ́½ø³ÌÊÇÒ»¸ö³£×¤ºǫ́µÄϵͳ½ø³Ì£¬ÖµµÃ×¢ÒâµÄÊÇDockerʹÓÃͬһ¸öÎļþÀ´Ö§³Ö¿Í»§¶ËºÍºǫ́½ø³Ì£¬ÆäÖнÇÉ«Çл»Í¨¹ý-dÀ´ÊµÏÖ¡£Õâ¸öºǫ́½ø³ÌÊÇÓÃÀ´¹ÜÀíÈÝÆ÷µÄ£¬Ê¹ÓÃDocker
--help¿ÉÒԵõ½¸üÏêϸµÄ¹¦ÄܲÎÊýÅäÖÃ, ÈçÏÂͼ£º

Dockerºǫ́½ø³Ì²ÎÊýÇåµ¥ÈçÏÂ±í£º

×¢Ò⣬ÆäÖдøÓÐ[] µÄÆô¶¯²ÎÊý¿ÉÒÔÖ¸¶¨¶à´Î£¬ÀýÈç
$ docker run -a stdin -a stdout -a stderr -i -t ubuntu /bin/bash |
2. DockerÃüÁîÐÐÌ½ÃØ
2.1 »·¾³ÐÅÏ¢Ïà¹Ø
info
ʹÓ÷½·¨£º docker info
Àý×Ó£º
[fedora@docker-devel-cli docker]$ sudo docker -D info Containers: 0 Images: 32 Storage Driver: devicemapper Pool Name: docker-252:1-130159-pool Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 1616.9 Mb Data Space Total: 102400.0 Mb Metadata Space Used: 2.4 Mb Metadata Space Total: 2048.0 Mb Execution Driver: native-0.2 Kernel Version: 3.11.10-301.fc20.x86_64 Debug mode (server): false Debug mode (client): true Fds: 11 Goroutines: 14 EventsListeners: 0 Init SHA1: 2c5adb59737b8a01fa3fb968519a43fe140bc9c9 Init Path: /usr/libexec/docker/dockerinit Sockets: [fd://] |
ʹÓÃ˵Ã÷£º
Õâ¸öÃüÁîÔÚ¿ª·¢Õß±¨¸æBugʱ»á·Ç³£ÓÐÓ㬽áºÏdocker vesionÒ»Æð£¬¿ÉÒÔËæÊ±Ê¹ÓÃÕâ¸öÃüÁî°Ñ±¾µØµÄÅäÖÃÐÅÏ¢Ìṩ³öÀ´£¬·½±ãDockerµÄ¿ª·¢Õß¿ìËÙ¶¨Î»ÎÊÌâ¡£
version
ʹÓ÷½·¨£º docker version
ʹÓÃ˵Ã÷£º
ÏÔʾDockerµÄ°æ±¾ºÅ£¬API°æ±¾ºÅ£¬Git commit£¬ Docker¿Í»§¶ËºÍºǫ́½ø³ÌµÄGo°æ±¾ºÅ¡£
2.2 ϵͳÔËάÏà¹Ø
attach
ʹÓ÷½·¨£º docker attach [OPTIONS] CONTAINER
Àý×Ó£º
$ ID=$(sudo docker run -d ubuntu /usr/bin/top -b) $ sudo docker attach $ID top - 17:21:49 up 5:53, 0 users, load average: 0.63, 1.15, 0.78 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.0 us, 0.7 sy, 0.0 ni, 97.7 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 2051644 total, 723700 used, 1327944 free, 33032 buffers KiB Swap: 0 total, 0 used, 0 free. 565836 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
COMMAND
1 root 20 0 19748 1280 1008 R 0.0 0.1 0:00.04
top
$ sudo docker stop $ID |
ʹÓÃ˵Ã÷£º
ʹÓÃÕâ¸öÃüÁî¿ÉÒÔ¹ÒÔØÕýÔÚºǫ́ÔËÐеÄÈÝÆ÷£¬ÔÚ¿ª·¢Ó¦ÓõĹý³ÌÖÐÔËÓÃÕâ¸öÃüÁî¿ÉÒÔËæÊ±¹Û²ìÈÝÆ÷ƒÈ½ø³ÌµÄÔËÐÐ×´¿ö¡£¿ª·¢ÕßÔÚ¿ª·¢Ó¦Óõij¡¾°ÖУ¬Õâ¸öÃüÁîÊÇÒ»¸ö·Ç³£ÓÐÓõÄÃüÁî¡£
build
ʹÓ÷½·¨£ºdocker build [OPTIONS] PATH | URL | -
Àý×Ó£º
$ docker build . Uploading context 18.829 MB Uploading context Step 0 : FROM busybox ---> 769b9341d937 Step 1 : CMD echo Hello world ---> Using cache ---> 99cc1ad10469 Successfully built 99cc1ad10469 |
ʹÓÃ˵Ã÷£º
Õâ¸öÃüÁîÊÇ´ÓÔ´Âë¹¹½¨ÐÂImageµÄÃüÁî¡£ÒòΪImageÊÇ·Ö²ãµÄ£¬×î¹Ø¼üµÄBase ImageÊÇÈçºÎ¹¹½¨µÄÊÇÓû§±È½Ï¹ØÐĵģ¬Docker¹Ù·½Îĵµ¸ø³öÁ˹¹½¨·½·¨£¬Çë²Î¿¼ÕâÀï¡£
commit
ʹÓ÷½·¨£ºdocker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Àý×Ó£º
$ sudo docker ps ID IMAGE COMMAND CREATED STATUS PORTS c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours 197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours $ docker commit c3f279d17e0a SvenDowideit/testimage:version3 f5283438590d $ docker images | head REPOSITORY TAG ID CREATED VIRTUAL SIZE SvenDowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB |
ʹÓÃ˵Ã÷£º
Õâ¸öÃüÁîµÄÓô¦ÔÚÓÚ°ÑÓÐÐ޸ĵÄcontainerÌá½»³ÉеÄImage£¬È»ºóµ¼³ö´ËImange·Ö·¢¸øÆäËû³¡¾°Öе÷ÊÔʹÓá£Docker¹Ù·½µÄ½¨ÒéÊÇ£¬µ±ÄãÔÚµ÷ÊÔÍêImageµÄÎÊÌâºó£¬Ó¦¸Ãдһ¸öеÄDockerfileÎļþÀ´Î¬»¤´ËImage¡£commitÃüÁî½öÊÇÒ»¸öÁÙʱ´´½¨ImangeµÄ¸¨ÖúÃüÁî¡£
cp
ʹÓ÷½·¨£º cp CONTAINER:PATH HOSTPATH
ʹÓÃ˵Ã÷£º
ʹÓÃcp¿ÉÒÔ°ÑÈÝÆ÷ƒÈµÄÎļþ¸´ÖƵ½HostÖ÷»úÉÏ¡£Õâ¸öÃüÁîÔÚ¿ª·¢Õß¿ª·¢Ó¦Óõij¡¾°Ï£¬»áÐèÒª°ÑÔËÐгÌÐò²úÉúµÄ½á¹û¸´ÖƳöÀ´µÄÐèÇó£¬ÔÚÕâ¸öÇé¿öϾͿÉÒÔʹÓÃÕâ¸öcpÃüÁî¡£
diff
ʹÓ÷½·¨£ºdocker diff CONTAINER
Àý×Ó£º
$ sudo docker diff 7bb0e258aefe
C /dev
A /dev/kmsg
C /etc
A /etc/mtab
A /go
A /go/src
A /go/src/github.com
A /go/src/github.com/dotcloud
.... |
ʹÓÃ˵Ã÷£º
diff»áÁгö3ÖÖÈÝÆ÷ÄÚÎļþ״̬±ä»¯£¨A - Add, D - Delete, C - Change
£©µÄÁбíÇåµ¥¡£¹¹½¨ImageµÄ¹ý³ÌÖÐÐèÒªµÄµ÷ÊÔÖ¸Áî¡£
export
ʹÓ÷½·¨£ºdocker export CONTAINER
Àý×Ó£º
$ sudo docker export red_panda > latest.tar |
ʹÓÃ˵Ã÷£º
°ÑÈÝÆ÷ϵͳÎļþ´ò°ü²¢µ¼³öÀ´£¬·½±ã·Ö·¢¸øÆäËû³¡¾°Ê¹Óá£
images
ʹÓ÷½·¨£ºdocker images [OPTIONS] [NAME]
Àý×Ó£º
$ sudo docker images | head REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE <none> <none> 77af4d6b9913 19 hours ago 1.089 GB committest latest b6fa739cedf5 19 hours ago 1.089 GB <none> <none> 78a85c484f71 19 hours ago 1.089 GB $ docker latest 30557a29d5ab 20 hours ago 1.089 GB <none> <none> 0124422dd9f9 20 hours ago 1.089 GB <none> <none> 18ad6fad3402 22 hours ago 1.082 GB <none> <none> f9f1e26352f0 23 hours ago 1.089 GB tryout latest 2629d1fa0b81 23 hours ago 131.5 MB <none> <none> 5ed6274db6ce 24 hours ago 1.089 GB |
ʹÓÃ˵Ã÷£º
Docker ImageÊǶà²ã½á¹¹µÄ£¬Ä¬ÈÏÖ»ÏÔʾ×î¶¥²ãµÄImage¡£²»ÏÔʾµÄÖмä²ãĬÈÏÊÇΪÁËÔö¼Ó¿É¸´ÓÃÐÔ¡¢¼õÉÙ´ÅÅÌʹÓÿռ䣬¼Ó¿ìbuild¹¹½¨µÄËٶȵŦÄÜ£¬Ò»°ãÓû§²»ÐèÒª¹ØÐÄÕâ¸öϸ½Ú¡£
import / save / load
ʹÓ÷½·¨£º
docker import URL|- [REPOSITORY[:TAG]] docker save IMAGE docker load |
ʹÓÃ˵Ã÷£º
ÕâÒ»×éÃüÁîÊÇϵͳÔËάÀï·Ç³£¹Ø¼üµÄÃüÁî¡£¼ÓÔØ(Á½ÖÖ·½·¨: import, load)£¬µ¼³ö(Ò»ÖÖ·½·¨:
save)ÈÝÆ÷ϵͳÎļþ¡£
inspect
ʹÓ÷½·¨£º
docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE...] |
Àý×Ó£º
$ sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' $INSTANCE_ID |
ʹÓÃ˵Ã÷£º
²é¿´ÈÝÆ÷ÔËÐÐʱÏêϸÐÅÏ¢µÄÃüÁî¡£Á˽âÒ»¸öImage»òÕßContainerµÄÍêÕû¹¹½¨ÐÅÏ¢¾Í¿ÉÒÔͨ¹ýÕâ¸öÃüÁîʵÏÖ¡£
kill
ʹÓ÷½·¨£º
docker kill [OPTIONS] CONTAINER [CONTAINER...] |
ʹÓÃ˵Ã÷£º
ɱµôÈÝÆ÷µÄ½ø³Ì¡£
port
ʹÓ÷½·¨£º
docker port CONTAINER PRIVATE_PORT |
ʹÓÃ˵Ã÷£º
´òÓ¡³öHostÖ÷»ú¶Ë¿ÚÓëÈÝÆ÷±©Â¶³öµÄ¶Ë¿ÚµÄNATÓ³Éä¹ØÏµ
pause / unpause
ʹÓ÷½·¨£º
ʹÓÃ˵Ã÷£º
ʹÓÃcgroupµÄfreezer˳ÐòÔÝÍ£¡¢»Ö¸´ÈÝÆ÷ÀïµÄËùÓнø³Ì¡£ÏêϸfreezerµÄÌØÐÔ£¬Çë²Î¿¼¹Ù·½Îĵµ¡£
ps
ʹÓ÷½·¨£º
Àý×Ó£º
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4c01db0b339c ubuntu:12.04 bash 17 seconds ago Up 16 seconds webapp d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago |
ʹÓÃ˵Ã÷£º
docker ps´òÓ¡³öÕýÔÚÔËÐеÄÈÝÆ÷£¬docker ps -a´òÓ¡³öËùÓÐÔËÐйýµÄÈÝÆ÷¡£
rm
ʹÓ÷½·¨£º
docker rm [OPTIONS] CONTAINER [CONTAINER...] |
Àý×Ó£º
$ sudo docker rm /redis /redis |
ʹÓÃ˵Ã÷£º
ɾ³ýÖ¸¶¨µÄÈÝÆ÷¡£
rmi
ʹÓ÷½·¨£º
docker rmi IMAGE [IMAGE...] |
Àý×Ó£º
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB) test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB) test2 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ sudo docker rmi fd484f19954f
Error: Conflict, cannot delete image fd484f19954f
because it is tagged in multiple repositories
2013/12/11 05:47:16 Error: failed to remove one
or more images
$ sudo docker rmi test1
Untagged: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
$ sudo docker rmi test2
Untagged: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test latest fd484f19954f 23 seconds ago 7 B (virtual
4.964 MB)
$ sudo docker rmi test
Untagged: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8 |
ʹÓÃ˵Ã÷£º
Ö¸¶¨É¾³ýImageÎļþ¡£
run
ʹÓ÷½·¨£º
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] |
Àý×Ó£º
$ sudo docker run --cidfile /tmp/docker_test.cid ubuntu echo "test" |
ʹÓÃ˵Ã÷£º
Õâ¸öÃüÁîÊǺËÐÄÃüÁ¿ÉÒÔÅäÖõIJÎÊý¶à´ï28¸ö²ÎÊý¡£ÏêϸµÄ½âÊÍ¿ÉÒÔͨ¹ýdocker run --helpÁгö¡£¹Ù·½ÎĵµÖÐÌáµ½µÄ
Issue 2702£º"lxc-start: Permission denied - failed
to mount" could indicate a permissions problem
with AppArmor. ÔÚ×îа汾µÄDcokerÖÐÒѾ½â¾ö¡£
start / stop / restart
ʹÓ÷½·¨£º
docker start CONTAINER [CONTAINER...] |
ʹÓÃ˵Ã÷£º
Õâ×éÃüÁî¿ÉÒÔ¿ªÆô(Á½¸ö£ºstart, restart)£¬Í£Ö¹(Ò»¸ö£ºstop)Ò»¸öÈÝÆ÷¡£
tag
ʹÓ÷½·¨£º
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] |
ʹÓÃ˵Ã÷£º
×éºÏʹÓÃÓû§Ãû£¬ImageÃû×Ö£¬±êÇ©ÃûÀ´×éÖ¯¹ÜÀíImage¡£
top
ʹÓ÷½·¨£º
docker top CONTAINER [ps OPTIONS] |
ʹÓÃ˵Ã÷£º
ÏÔʾÈÝÆ÷ƒÈÔËÐеĽø³Ì¡£
wait
ʹÓ÷½·¨£º
docker wait CONTAINER [CONTAINER...] |
ʹÓÃ˵Ã÷£º
×èÈû¶ÔÖ¸¶¨ÈÝÆ÷µÄÆäËûµ÷Ó÷½·¨£¬Ö±µ½ÈÝÆ÷Í£Ö¹ºóÍ˳ö×èÈû¡£
2.3 ÈÕÖ¾ÐÅÏ¢Ïà¹Ø
events
ʹÓ÷½·¨£º
ʹÓÃ˵Ã÷£º
´òÓ¡ÈÝÆ÷ʵʱµÄϵͳʼþ¡£
history
ʹÓ÷½·¨£º
docker history [OPTIONS] IMAGE |
Àý×Ó£º
$ docker history docker IMAGE CREATED CREATED BY SIZE 3e23a5875458790b7a806f95f7ec0d0b2a5c1659bfc899c89f939f6d5b8f7094 8 days ago /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8 0 B 8578938dd17054dce7993d21de79e96a037400e8d28e15e7290fea4f65128a36 8 days ago /bin/sh -c dpkg-reconfigure locales && locale-gen C.UTF-8 && /usr/sbin/update-locale LANG=C.UTF-8 1.245 MB be51b77efb42f67a5e96437b3e102f81e0a1399038f77bf28cea0ed23a65cf60 8 days ago /bin/sh -c apt-get update && apt-get install -y git libxml2-dev python build-essential make gcc python-dev locales python-pip 338.3 MB 4b137612be55ca69776c7f30c2d2dd0aa2e7d72059820abf3e25b629f887a084 6 weeks ago /bin/sh -c #(nop) ADD jessie.tar.xz in / 121 MB 750d58736b4b6cc0f9a9abe8f258cef269e3e9dceced1146503522be9f985ada 6 weeks ago /bin/sh -c #(nop) MAINTAINER Tianon Gravi <admwiggin@gmail.com> - mkimage-debootstrap.sh -t jessie.tar.xz jessie http://http.debian.net/debian 0 B 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 9 months ago 0 B |
ʹÓÃ˵Ã÷£º
´òÓ¡Ö¸¶¨ImageÖÐÿһ²ãImageÃüÁîÐеÄÀúÊ·¼Ç¼¡£
logs
ʹÓ÷½·¨£º
ʹÓÃ˵Ã÷£º
ÅúÁ¿´òÓ¡³öÈÝÆ÷Öнø³ÌµÄÔËÐÐÈÕÖ¾¡£
2.4 Dcoker Hub·þÎñÏà¹Ø
login
ʹÓ÷½·¨£º
docker login [OPTIONS] [SERVER] |
ʹÓÃ˵Ã÷£º
µÇ¼Hub·þÎñ¡£
pull / push
ʹÓ÷½·¨£º
ʹÓÃ˵Ã÷£º
ͨ¹ý´ËÃüÁî·ÖÏíImageµ½Hub·þÎñ»òÕß×Ô·þÎñµÄRegistry·þÎñ¡£
search
ʹÓ÷½·¨£º
ʹÓÃ˵Ã÷£º
ͨ¹ý¹Ø¼ü×ÖËÑË÷·ÖÏíµÄImage¡£
3. ×ܽá
ͨ¹ýÒÔÉÏDockerÃüÁîÐеÄÏêϸ½âÊÍ£¬¿ÉÒÔÇ¿»¯¶ÔDockerÃüÁîµÄÈ«ÃæÀí½â¡£¿¼Âǵ½DockerÃüÁîÐеķ¢Õ¹±ä»¯·Ç³£¿ì£¬¶ÁÕß¿ÉÒԲο¼¹Ù·½µÄÃüÁîÐнâÊÍÎĵµ¸üÐÂÏàÓ¦µÄÃüÁîÐнâÊÍ¡£ÁíÍ⣬ͨ¹ýÒÔÉÏDockerÃüÁîÐеķÖÎö£¬¿ÉÒÔÖªµÀDockerÃüÁîÐмܹ¹Éè¼ÆµÄÌØµãÔÚÓÚ¿Í»§¶ËºÍ·þÎñ¶ËµÄÔËÐÐÎļþÊÇͬһ¸öÎļþ£¬ÄÚ²¿ÊµÏÖ´úÂëÓ¦¸ÃÊÇÖØÓõÄÉè¼Æ¡£±ÊÕßÏ£Íû¿ª·¢ÕßÔÚ¿ª·¢ÀàËÆµÄÃüÁîÐÐÓ¦ÓÃʱ²Î¿¼ÕâÑùµÄÉè¼Æ£¬¼õÉÙǰºǫ́ÈÝ´íµÄ¸´ÔÓ¶È¡£ |