Docker(二)容器操作容器
阿新 • • 發佈:2018-08-13
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(二)容器操作容器