一、介紹
容器是獨立運行的一個或一組應用,以及它們的運行態環境。對應的,虛擬機可以理解爲模擬運行的一整套操作系統和排在上面的應用。
二、容器
2.1 啓動容器
啓動容器有兩種方式,一種是基於鏡像新建一個容器並啓動,另一個是將終止狀態的容器重新啓動。
新建並啓動:所需命令主要爲 docker run。例如下面啓動後輸出一個“Hello World”,之後終止容器。
root@VM-0-15-ubuntu:~# docker run myimage /bin/echo 'Hello World!' Hello World!
這跟本地直接執行/bin/echo 'hello world' 幾乎感覺不到任何區別。
下面的命令則啓動一個bash終端,允許用戶進行交互。其中 -t 選項讓Docker分配一個僞終端並綁定到容器的標準輸入上,-i 則讓容器的標準輸入保持打開。使用exit退出終端。
當利用 docker run來創建容器時,Docker在後臺允許的標準操作包括:
- 檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
- 醫用鏡像創建並啓動一個容器
- 分配一個文件系統,並在只讀的鏡像層外面掛在一層可讀寫層
- 從宿主主機配置的網絡接口中橋接一個虛擬接口到容器中去
- 從地址池配置一個ip地址給容器
- 執行用戶指定的應用程序
- 執行完畢後容器被終止
啓動已終止容器:docker start 命令,直接將一個已終止的容器啓動運行。
2.2 查看容器
docker ps // 查看所有正在運行容器 docker stop containerId // containerId 是容器的ID docker ps -a // 查看所有容器 docker ps -a -q // 查看所有容器ID
2.3 終止容器
docker stop 加容器ID //終止容器 docker stop $(docker ps -a -q) // stop停止所有容器
2.4 守護態運行
更多時候,需要讓Docker容器在後臺以守護態形式運行。此時,可以通過添加 -d 參數來實現。如
root@VM-0-15-ubuntu:~# docker run -d myimage 755c54ec56e25c19295b08a86aef8b2a1a65753d62b80b50dce65ca96b719403
容器啓動會返回一個唯一的id。
2.5 進入容器
在使用 -d 參數時,容器啓動後會進入後臺。某些時候需要進入容器進行操作,有很多種方法,包括使用 docker attach命令或 nsenter工具等。如:
root@VM-0-15-ubuntu:~# docker run -idt myimage //根據鏡像創建容器 65763bc0fb47a05fe98529b5187588080f659f579e4c6c3e8044aca5c215a06a root@VM-0-15-ubuntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 65763bc0fb47 myimage "/bin/bash" 42 seconds ago Up 42 seconds nostalgic_mccarthy 755c54ec56e2 myimage "/bin/bash" 6 minutes ago Exited (0) 6 minutes ago kickass_engelbart 5c05efb733f5 myimage "/bin/bash" 20 minutes ago Exited (0) 19 minutes ago sharp_varahamihira root@VM-0-15-ubuntu:~# docker attach nostalgic_mccarthy
2.6 刪除容器
使用 docker rm 來刪除一個處於終止狀態的容器,如果刪除運行中的容器,可以添加 -f 參數。
docker rm $(docker ps -a -q) // remove刪除所有容器。