docker容器相關命令
阿新 • • 發佈:2019-01-05
一 建立容器
可以使用docker create命令新建一個容器。
[[email protected] ~]# docker create -it ubuntu:latest
5097a7a94472e22bcc38f0d2fe4a1fcf2ab49b047a261f9f62da4ac5a89c27b9
[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5097a7a94472 ubuntu:latest "/bin/bash" 16 seconds ago Created dreamy_euclid
e422f73a5651 ubuntu:15.10 "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_poincare
bf67651b183f ubuntu:latest "/bin/bash" 3 hours ago Exited (127) 3 hours ago fervent_volhard
e26a0172a0aa ubuntu:15.10 "/bin/bash" 3 hours ago Exited (0) 3 hours ago desperate_aryabhata
fc7112c18128 ubuntu:15.10 "/bin/sh -c 'while tr" 4 hours ago Exited (137) 4 hours ago infallible_kilby
8b58c26d093d ubuntu:15.10 "/bin/bash" 5 hours ago Exited (0) 4 hours ago stoic_yalow
6df454abad9a ubuntu:15.10 "/bin/echo 'Hello wor" 5 hours ago Exited (0) 5 hours ago clever_varahamihira
70574cff1a52 hello-world "/hello" 5 hours ago Exited (0) 5 hours ago stupefied_panini
使用docker create命令新建的容器處於停止狀態,可以使用docker start命令來啟動它。
[ [email protected] ~]# docker start 5097a7a94472
5097a7a94472
[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5097a7a94472 ubuntu:latest "/bin/bash" 5 minutes ago Up 42 seconds dreamy_euclid
e422f73a5651 ubuntu:15.10 "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_poincare
bf67651b183f ubuntu:latest "/bin/bash" 3 hours ago Exited (127) 3 hours ago fervent_volhard
e26a0172a0aa ubuntu:15.10 "/bin/bash" 3 hours ago Exited (0) 3 hours ago desperate_aryabhata
fc7112c18128 ubuntu:15.10 "/bin/sh -c 'while tr" 5 hours ago Exited (137) 4 hours ago infallible_kilby
8b58c26d093d ubuntu:15.10 "/bin/bash" 5 hours ago Exited (0) 5 hours ago stoic_yalow
6df454abad9a ubuntu:15.10 "/bin/echo 'Hello wor" 5 hours ago Exited (0) 5 hours ago clever_varahamihira
70574cff1a52 hello-world "/hello" 5 hours ago Exited (0) 5 hours ago stupefied_panini
二 新建並啟動容器
下面的命令輸出一個“Hello World”,之後容器自動終止。
[[email protected] ~]# docker run ubuntu /bin/echo 'Hello world'
Hello world
利用docker run來建立並啟動容器時,Docker在後臺執行的標準操作包括:
1、檢查本地是否存在指定的映象,不存在就從共有倉庫下載。
2、利用映象建立並啟動一個容器。
3、分配一個檔案系統,並在只讀的進行層外面掛載一層可讀可寫。
4、從宿主主機配置的網橋介面中橋接一個虛擬介面到容器中去。
5、從地址池配置一個IP地址給容器
6、執行完使用者指定的應用程式。
7、執行完畢後容器被終止。
在容器內用ps命令檢視程序,可以看到,只運行了bash應用,並沒有執行其他不需要的程序。
使用者可以按Ctrl+d或輸入exit命令來退出容器。
[email protected]:/# ps
PID TTY TIME CMD
1 ? 00:00:00 bash
10 ? 00:00:00 ps
[email protected]:/# exit
exit
三 容器的停止和啟動
1、docker stop
[[email protected] ~]# docker run -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"
7c60a8165ee1f13c2397c13b399ed6560833cb3db35cc06851f0b81dd4b32a58
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c60a8165ee1 ubuntu "/bin/sh -c 'while tr" 29 seconds ago Up 26 seconds cranky_shirley
[[email protected] ~]# docker stop 7c6
7c6
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2、docker start
處於終止的容器,可以通過docker start命令來重新啟動
[[email protected] ~]# docker start 7c6
7c6
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c60a8165ee1 ubuntu "/bin/sh -c 'while tr" 4 minutes ago Up 4 seconds cranky_shirley
3、docker restart
[[email protected] ~]# docker restart 7c6
7c6
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c60a8165ee1 ubuntu "/bin/sh -c 'while tr" 4 minutes ago Up 2 seconds cranky_shirley
[[email protected] ~]# docker stop 7c6
7c6
四 進入容器
1、attach命令
attach命令是Docker自帶的命令,如果想進入容器操作,可執行此命令。
[[email protected] ~]# docker run -idt ubuntu
f9db2f923a8cf9587c1769d847677310d726f8c82a2e89579adbf20735f2c343
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9db2f923a8c ubuntu "/bin/bash" 12 seconds ago Up 9 seconds small_wing
[[email protected] ~]# docker attach small_wing
[email protected]:/#
2、exec命令
[[email protected] ~]# docker run -idt ubuntu
8b6655b34fbb926f3713a519fd764c665d16e71bac76996a5c11f0da536dc342
[[email protected] ~]# docker exec -ti 8b66 /bin/bash
[email protected]:/#
五 刪除容器
1、可以使用docker rm命令刪除處於終止狀態的容器。
[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf6b48960740 ubuntu "/bin/sh -c 'while tr" 8 seconds ago Up 5 seconds peaceful_mahavira
8b6655b34fbb ubuntu "/bin/bash" 5 minutes ago Up 5 minutes admiring_aryabhata
f9db2f923a8c ubuntu "/bin/bash" 12 minutes ago Exited (0) 5 minutes ago small_wing
7c60a8165ee1 ubuntu "/bin/sh -c 'while tr" 21 minutes ago Exited (137) 16 minutes ago cranky_shirley
93a1e1c730f0 ubuntu:15.10 "/bin/bash" 31 minutes ago Exited (0) 29 minutes ago sick_curran
[[email protected] ~]# docker rm f9d
f9d
[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf6b48960740 ubuntu "/bin/sh -c 'while tr" About a minute ago Up About a minute peaceful_mahavira
8b6655b34fbb ubuntu "/bin/bash" 6 minutes ago Up 6 minutes admiring_aryabhata
7c60a8165ee1 ubuntu "/bin/sh -c 'while tr" 22 minutes ago Exited (137) 17 minutes ago cranky_shirley
93a1e1c730f0 ubuntu:15.10 "/bin/bash" 32 minutes ago Exited (0) 30 minutes ago sick_curran
2、如果要刪除一個執行中的容器,可以新增-f 引數。
[[email protected] ~]# docker rm -f cf6
[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b6655b34fbb ubuntu "/bin/bash" 8 minutes ago Up 8 minutes admiring_aryabhata
7c60a8165ee1 ubuntu "/bin/sh -c 'while tr" 24 minutes ago Exited (137) 19 minutes ago cranky_shirley
93a1e1c730f0 ubuntu:15.10 "/bin/bash" 34 minutes ago Exited (0) 32 minutes ago sick_curran
六 匯出和匯入容器
1、匯出容器
匯出容器是指匯出一個已經建立的容器到一個檔案,不管此時這個容器是否處於執行狀態,可以使用docker export命令,該命令格式為docker export CONTAINER。
匯出容器到檔案test.tar中
[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a993263fcaa1 ubuntu "-t -i /bin/bash" 53 minutes ago Created grave_hodgkin
9ec4ef73572a ubuntu "-i -t /bin/bash" 53 minutes ago Created elegant_sammet
05e8791de1c7 ubuntu "-it /bin/bash" 54 minutes ago Created furious_leavitt
5097a7a94472 ubuntu:latest "/bin/bash" About an hour ago Exited (0) About an hour ago dreamy_euclid
e422f73a5651 ubuntu:15.10 "/bin/bash" 3 hours ago Exited (0) 3 hours ago fervent_poincare
fc7112c18128 ubuntu:15.10 "/bin/sh -c 'while tr" 6 hours ago Exited (137) 6 hours ago infallible_kilby
[[email protected] ~]# docker export fc > test.tar
2、匯入容器
匯出的檔案又可以使用docker import命令匯入,成為映象。
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/httpd 2.2 3624a4b77da8 2 weeks ago 169.9 MB
docker.io/ubuntu latest 0ef2e08ed3fa 2 weeks ago 130 MB
docker.io/hello-world latest 48b5124b2768 9 weeks ago 1.84 kB
docker.io/ubuntu 15.10 9b9cb95443b5 7 months ago 137.2 MB
[[email protected] ~]# cat test1.tar |docker import - test/while
sha256:cf1473016855cd216787c3b86cc7c84b8130e6025dbf6a27414c3e43fc5c2d7c
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/while latest cf1473016855 43 seconds ago 118.8 MB
docker.io/httpd 2.2 3624a4b77da8 2 weeks ago 169.9 MB
docker.io/ubuntu latest 0ef2e08ed3fa 2 weeks ago 130 MB
docker.io/hello-world latest 48b5124b2768 9 weeks ago 1.84 kB
docker.io/ubuntu 15.10 9b9cb95443b5 7 months ago 137.2 MB