1. 程式人生 > >docker容器相關命令

docker容器相關命令

一 建立容器 可以使用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