創建容器
新建容器
方法一:
[root@docker1home]# docker run -it centos:6 echo "hello"
hello
方法二:
[root@docker1home]# docker create -it centos:6 echo "hello"
c97b4ca48ce2f2065230398c57955c9ab9a31a3af9301217a626a16471697451
使用方法二創建的容易處於停止狀態,使用docker start來啓動它。docker run相當於先docker create再docker run。
[root@docker1home]# docker start c97
c97
當使用run命令來創建並啓動容器時,docker在後臺會運行如下標準操作:
1、檢查本地是否存在指定的鏡像,沒有就從公有倉庫下載;
2、利用鏡像創建並啓動一個容器;
3、分配一個filesystem,並在只讀的鏡像層外面掛載一個可讀寫層;
4、從宿主機配置的網橋接口中橋接一個虛擬接口到容器中去;
5、從地址池分配一個ip地址給容器;
6、執行用戶指定的應用程序;
7、指定完成後容器被終止。
啓動一個bash終端,允許用戶進行交互操作:
[root@docker1home]# docker run -it centos:6 /bin/bash
-t讓docker分配一個僞終端並綁定到容器的標準輸入上
-i讓容器的終端保持打開
在容器中使用ps –ef 查看發現容器中只運行了bash應用,沒有其他進程。
使用exit或ctrl+D退出容器,退出之後該容器就出於終止狀態
守護態運行容器
[root@docker1home]# docker run -d centos:6 /bin/bash -c "while true;do echo hello;sleep1;done"
使用-d參數來實現守護態運行,會輸出一個唯一的ID
[root@docker1home]# docker logs fb8
在守護態運行時可以使用dockerlogs查看容器的輸出信息
終止容器
[root@docker1~]# docker stop fb8
當一個容器中的應用結束時,它就會自動終止,docker stop終止容器時會先發送一個SIFTEAM信號,默認10秒後再發送一個SIGKILL信號。
[root@docker1 ~]# docker ps -a -q
docker ps -a –q命令只顯示容器的ID信息。
出於終止狀態的容器當然也可以使用docker start命令來重新啓動。
進入容器
可以使用docker attach、docker exec命令或nsenter工具進入容器
[root@docker1~]# docker attach fae
[root@docker1~]# docker exec -it fae /bin/bash
下面使用nsenter命令進入容器,使用此命令先要獲得容器的pid,具體操作方法如下:
[root@docker1~]# PID=$(docker inspect --format "` `.`State`.`Pid `" fae)
[root@docker1~]# echo $PID
2013
[root@docker1~]# nsenter --target $PID --mount --uts --ipc --net --pid
[root@fae7382a0306/]#
刪除容器
使用docker命令刪除一個處於終止狀態的容器,要刪除一個在運行的容器,使用-f參數,Docker會發送一個SIGKILL信號給容器。
-f:強制刪除運行中的容器;
-l:刪除容器的鏈接,但保留容器;
-v:刪除容器掛載的數據卷。
導入和導出容器
使用docker export命令可以導出某個容器
[root@docker1~]# docker export fb8 > firstexport.tar
使用docker import命令可以導入某個容器
[root@docker1~]# cat testexport.tar |docker import - jutest/centos:v6
14a8da86fb1e97cc3e73ffd93ba205ab4c231cb4312256e187ab68dacb29595c