容器是Docker的另一個(gè)核心概念,簡單來說容器就是鏡像的一個(gè)運(yùn)行示例。
查看容器
使用docker ps命令查看運(yùn)行著的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
229929eb660f renguangli/nginx:1.0 "nginx -g 'daemon off" 17 hours ago Up 3 seconds 0.0.0.0:80->80/tcp nginx
使用docker ps -a命令查看所有的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
229929eb660f renguangli/nginx:1.0 "nginx -g 'daemon off" 17 hours ago Up 3 seconds 0.0.0.0:80->80/tcp nginx
3ceb621f4aa9 jenkins "/bin/tini -- /usr/lo" About an hour ago Exited (137) 48 seconds ago elated_davinci
使用docker create image:tag name命令創(chuàng)建一個(gè)容器并給容器一個(gè)name,例如
[root@localhost ~]# docker create nginx:latest nginx
fd47cedfcce5cd2879ef65b342b1cd4130cbcc081cec532ff7af1744ad589116
如果不加name的話隨機(jī)分配一個(gè)名字
啟動(dòng)容器
使用docker start 容器名稱或容器ID來啟動(dòng)一個(gè)容器,例如
[root@localhost ~]# docker ps -a
229929eb660f renguangli/nginx:1.0 "nginx -g 'daemon off" 17 hours ago Exited (0) 8 seconds ago nginx
[root@localhost ~]# docker start nginx 或者 docker start 229929eb660f
新建并啟動(dòng)容器
創(chuàng)建容器后可以用docker start命令啟動(dòng)容器,也可以用docker run命令直接新建并啟動(dòng)容器,docker run相當(dāng)于先執(zhí)行docker create命令在執(zhí)行docker start名利。例如,輸出一個(gè)"hello docker"
[root@localhost ~]# docker run ubuntu echo "hello docker"
hello docker
這跟在本次執(zhí)行echo "hello docker"幾乎沒有任何區(qū)別,但是在執(zhí)行docker run命令時(shí)經(jīng)歷了復(fù)雜的操作:
- 檢查本地是否存在指定的鏡像,,不存在就從共有倉庫下載
- 利用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器
- 分配一個(gè)文件系統(tǒng)給容器,并在只讀的鏡像層外面掛在一個(gè)可讀寫層
- 從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中
- 從王橋的地址池中配置一個(gè)IP地址給容器
- 執(zhí)行用戶指定的應(yīng)用程序
- 執(zhí)行完畢后容器自動(dòng)終止
docker run -d命令會(huì)讓容器在后臺(tái)運(yùn)行
docker logs名利可以查看容器日志
終止容器
使用docker stop 容器名或容器ID命令停止一個(gè)容器
[root@localhost html]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16555d4ebdf0 nginx:1.10.0 "nginx -g 'daemon off" 47 minutes ago Up 8 seconds 0.0.0.0:80->80/tcp jolly_goodall
[root@localhost html]# docker stop 16555d4ebdf0 或者 docker stop jolly_goodall
docker stop命令首先想容器發(fā)送SIGKILL的信號,等待一段時(shí)間后(默認(rèn)10秒)在發(fā)送SIGKILL信號來終止容器
docker kill 命令會(huì)直接發(fā)送SIGKILL信號來終止容器
終止的容器可以使用docer start來啟動(dòng)一個(gè)容器
運(yùn)行著的容器可以使用docker restart來重啟容器