來自:http://www.javashuo.com/article/p-zatpntfi-hw.htmlhtml
列出主機上的容器web
列出正在運行的容器: docker psdocker
列出全部容器: docker ps -a shell
列出最近使用的容器,包括沒有運行的: docker ps -l數據庫
僅列出容器的ID,不包括沒有運行的: docker ps qcentos
建立容器bash
參數:服務器
--name 指定容器的名字app
--rm 容器運行完畢會自動刪除post
-i -t 建立一個提供交互式shell的容器。
-d 在後臺運行容器,而且打印出容器的ID。
建立交互式容器
[root@wls12c ~]$ docker run --name weblogic -i -t centos /bin/bash
[root@35e3b0fa9dea /]# exit
exit
對於交互式容器,當退出shell後,容器會關閉。 後面能夠經過命令從新啓動容器。
建立守護式容器
這種容器指容器能夠長期一直運行,沒有交互式會話,很是適合容器中運行後臺應用程序和服務(如數據庫服務、web服務器等)。
[root@wls12c ~]$ docker run -d centos /bin/bash -c "while true;do echo hello docker;sleep 1;done" af2e15753ec8e27f5a7daad6881cd23c9e098330e9be66920e78e07e8844ac8c
啓動和中止容器
docker start/stop/restart continer id/name
docker -t 能夠指定時間中止容器,默認是10s
強制中止容器
docker kill continer id/name
附着到一個容器上
docker attach continer id/name
當從新啓動容器時,會沿用建立容器(docker run)命令時指定的參數來運行,可能須要按回車才進入。
這時就已經至關於在容器內部了的shell操做了。若是操做過程當中,退出了shell。容器也會隨之中止。
[root@wls12c ~]$ docker run -i -t centos /bin/bash [root@cf9b70252ba5 /]# exit exit [root@wls12c ~]$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cf9b70252ba5 centos "/bin/bash" 22 seconds ago Exited (0) 11 seconds ago happy_bohr [root@wls12c ~]$ docker start cf9 cf9 [root@wls12c ~]$ docker attach cf9 [root@cf9b70252ba5 /]#
在運行的容器中執行命令
[root@wls12c ~]$ docker exec -t -i af2 /bin/bash [root@af2e15753ec8 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 03:27 ? 00:00:00 /bin/bash -c while true;do echo hello docker;sleep root 33 0 0 03:28 ? 00:00:00 /bin/bash root 54 33 10 03:28 ? 00:00:00 ps -ef root 55 1 0 03:28 ? 00:00:00 sleep 1
能夠經過docker exec命令在容器內部額外啓動新進程,退出容器,並不會中止容器。
查看容器的詳細信息
查看容器的運行時後臺輸出信息
docker logs continer id/name
[root@wls12c ~]$ docker logs cf9 [root@cf9b70252ba5 /]# exit exit [root@cf9b70252ba5 /]# exit exit [root@cf9b70252ba5 /]# [root@cf9b70252ba5 /]# exit exit [root@wls12c ~]$ docker logs af2 hello docker hello docker hello docker
利用docker inspect 命令能夠查看容器更多的信息。 如ip地址等,這對守護容器仍是頗有意義的。
刪除已經中止運行的容器
[root@wls12c ~]$ docker stop af2 af2 [root@wls12c ~]$ docker rm af2 af2
一次刪除全部中止的容器
[root@wls12c ~]$ docker rm $(docker ps -a -q)
查看容器內的改變信息
建立一個容器,會在容器的對應的鏡像上增長一個可寫層,鏡像部分是隻讀的。經過 diff命令能夠看出改變的信息。如:
[root@wls12c ~]$ docker run -i -t centos /bin/bash [root@224de7986c5f /]# touch demo.ext [root@224de7986c5f /]# echo hello docker >demo.ext [root@224de7986c5f /]# rm -rf anaconda-post.log [root@224de7986c5f /]# exit exit [root@wls12c ~]$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 224de7986c5f centos "/bin/bash" 40 seconds ago Exited (0) 3 seconds ago desperate_curie [root@wls12c ~]$ docker diff 224d D /anaconda-post.log A /demo.ext C /root A /root/.bash_history
說明:每行表明一個變更的文件或目錄。其中 A 表示新增、C表示被修改、D表示被刪除
主機和容器之間的文件拷貝
容器--->主機
[root@wls12c ~]$ docker exec -t -i 9f bin/bash [root@9f49397623ad /]# cat demo.txt hello [root@9f49397623ad /]# exit exit
[root@wls12c ~]$ docker cp 9f:/demo.txt /test [root@wls12c ~]$ cat /test/demo.txt hello
主機-->容器
[root@wls12c ~]$ cp ~/1.txt /var/lib/docker/aufs/mnt/9f49397623ade7dfd2beb4d84454cbdb9878a4b22a2bab2e8b5db72bcffe60a0/test [root@wls12c ~]$ docker exec -t -i 9f /bin/bash [root@9f49397623ad /]# ls /test 1.txt
重命名容器
[root@wls12c ~]$ docker rename stoic_meitner demo