1. 程式人生 > >Docker(二)容器操作容器

Docker(二)容器操作容器

latest id號 stop 選項 循環語句 top exe second sha

Docker架構(二)容器操作

容器是Docker的令一個可行概念,容器就是鏡像的運行實例,是獨立運行的一個或一組應用

(1)Docker容器的創建和啟動

容器創建就是鏡像加載過程
命令格式:docker create [選項] 鏡像 運行程序

[root@xyue ~]# docker create -it httpd /bin/bash
4ca3aa48ebff4d01c01dcb6a90d72e66bf6f3a04b1849b08df89872a0677ed24
i:讓容器的輸入保持打開
t:讓Docker分配一個偽終端

使用docker create 命令創建新容器會返回一個唯一id
用使用docker ps -a查看容器運行狀態

[root@xyue ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
4ca3aa48ebff        httpd               "/bin/bash"              5 minutes ago       Created                                 dreamy_kare
fc26c0cf3ffc        hello-world         "--registry-mirror..."   2 hours ago         Created                                 adoring_bhabha

用docker start 容器的id啟動容器status顯示up開啟狀態
[root@xyue ~]# docker start 4ca3aa48ebff
4ca3aa48ebff
[root@xyue ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
4ca3aa48ebff        httpd               "/bin/bash"              6 minutes ago       Up 7 seconds        80/tcp              dreamy_kare
fc26c0cf3ffc        hello-world         "--registry-mirror..."   2 hours ago         Created 

如果要運行容器用docker run [容器id]
註:如果直接運行的話他只會運行一次如果你退出了把它就不再運行,看下列命令

[root@xyue ~]# docker run 4ca3aa48ebff
Unable to find image ‘4ca3aa48ebff:latest‘ locally
‘‘‘‘這邊實在運行狀態如果你不運行了可以看一下它的狀態

[root@xyue ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
ad5636e15a45        httpd               "httpd-foreground"       24 seconds ago      Exited (0) 4 seconds ago                       trusting_babbage
現在狀態處於推出狀態exit

如果想一直運行的話

#1:加入shell語句死循環語句
[root@xyue ~]# docker run -d httpd /bin/bash -c "while true;do echo hello;done"
92f7c581850c6c0bca07e4cbc1ba3c0e9d3b2884de27b9370095c6d7f9f5e205
[root@xyue ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
92f7c581850c        httpd               "/bin/bash -c ‘whi..."   4 seconds ago        Up 3 seconds        80/tcp              admiring_northcutt

#2:不加while語句加上端口
[root@xyue ~]# docker run -d -p 80:80 11426a19f1a2(後面不接容器id接鏡像id)
41298e2d211b0c28df773a577587dc2ac3be06522d0a3776cb2bfdd9bb997b04
#終止容器運行用stop

刪除運行鏡像用docker rmi [進程號]

進入容器docker exec -it [容器id] /bin/bash

[root@xyue ~]# docker exec -it 4ca3aa48ebff /bin/bash
root@4ca3aa48ebff:/usr/local/apache2# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  modules
#用戶可以通過創建的終端來輸入命令exit退出

容器的導入和導出
命令格式:docker export 容器ID/名稱 > 文件名

例如:導出 546675d49307 容器到文件centod7tar

[root@xyue apache] docker images | grep 546675d49307
[root@xyue apache] ls -l centos7tar 
-rw-r--r--. 1 root root 306354176 8月  13 11:49 centos7tar
[root@xyue apache] cat centos7tar | docker import - centos7:test
sha256:4d2e8905488cc688aa4e9f6d6df76d474ea25284902edd1f092b6b07c41041d0
[root@xyue apache] docker images | grep centos7
centos7             test                4d2e8905488c        22 seconds ago      298MB

容器的刪除
命令格式:docker rm 容器id/名稱

例如:刪除ID號為70d968aa6ef5的容器

[root@xyue apache] docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                   NAMES
0fcdbc61490c        fa6224949e21        "/bin/sh -c ‘EXPOS..."   41 minutes ago      Exited (127) 41 minutes ago                            quirky_newton
[root@xyue apache] docker rm 0fcdbc61490c
0fcdbc61490c
[root@xyue apache] docker ps -a | grep 0fcdbc61490c

Docker(二)容器操作容器