Docker容器狀態(tài)流轉(zhuǎn).png
在這幅圖中钓辆,我們可以看到舔痪,Docker 容器的生命周期里分為五種狀態(tài)误窖,其分別代表著:
Created:容器已經(jīng)被創(chuàng)建,容器所需的相關(guān)資源已經(jīng)準(zhǔn)備就緒,但容器中的程序還未處于運行狀態(tài)档押。
Running:容器正在運行逞力,也就是容器中的應(yīng)用正在運行。
Paused:容器已暫停倾哺,表示容器中的所有程序都處于暫停 ( 不是停止 ) 狀態(tài)轧邪。
Stopped:容器處于停止?fàn)顟B(tài),占用的資源和沙盒環(huán)境都依然存在羞海,只是容器中的應(yīng)用程序均已停止忌愚。
Deleted:容器已刪除,相關(guān)占用的資源及存儲在 Docker 中的管理信息也都已釋放和移除却邓。
創(chuàng)建容器
docker create nginx1.12
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker create mysql
27e4914213a2a7ea1c3408edd68681e68f1ef3730a4a71a370ee7d564f00559a
docker create --name mysql0 mysql
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker create --name mysql0 mysql
a33806d65b3d862eea01c4a6db0d66597280c471d77848ce5d6a8890b3432cf7
啟動容器
docker start mysql0
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker start mysql0
mysql0
在 Docker 里硕糊,還允許我們通過 docker run 這個命令將 docker create 和 docker start 這兩步操作合成為一步,進(jìn)一步提高工作效率腊徙。
docker run --name mysql0 -d mysql (-d 或 --detach 這個選項告訴 Docker 在啟動后將程序與控制臺分離简十,使其進(jìn)入“后臺”運行。)
docker run --name mysql0 -d mysql
89f2b769498a50f5c35a314ab82300ce9945cbb69da9cda4b022646125db8ca7
查看容器內(nèi)容
docker ps -a (-a或-all表示查看所有)
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6647f2a5fdcc redis "docker-entrypoint.s…" 9 seconds ago Up 8 seconds 6379/tcp redis
a33806d65b3d mysql "docker-entrypoint.s…" 12 minutes ago Exited (1) 5 minutes ago mysql0
27e4914213a2 mysql "docker-entrypoint.s…" 14 minutes ago Created quirky_noether
停止和刪除容器
docker stop mysql0 容器停止
mysql0
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6647f2a5fdcc redis "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 6379/tcp redis
a33806d65b3d mysql "docker-entrypoint.s…" 19 minutes ago Exited (1) 32 seconds ago mysql0
27e4914213a2 mysql "docker-entrypoint.s…" 21 minutes ago Created quirky_noether
docker rm mysql0 刪除容器
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker rm mysql0
mysql0
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6647f2a5fdcc redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 6379/tcp redis
27e4914213a2 mysql "docker-entrypoint.s…" 22 minutes ago Created quirky_noether
進(jìn)入容器
docker exec
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker exec redis more /etc/hostname
::::::::::::::
/etc/hostname
::::::::::::::
6647f2a5fdcc
通過bash或sh進(jìn)入容器內(nèi)部
[root@iZ2ze3gye2rcpntgyzryzbZ ~]# docker exec -it redis bash
root@6647f2a5fdcc:/data#
在借助 docker exec 進(jìn)入容器的時候撬腾,我們需要特別注意命令中的兩個選項不可或缺螟蝙,即 -i 和 -t ( 它們倆可以利用簡寫機制合并成 -it )。
其中 -i ( --interactive ) 表示保持我們的輸入流民傻,只有使用它才能保證控制臺程序能夠正確識別我們的命令胰默。而 -t ( --tty ) 表示啟用一個偽終端场斑,形成我
們與 bash 的交互,如果沒有它初坠,我們無法看到 bash 內(nèi)部的執(zhí)行結(jié)果和簸。
銜接到容器
docker attach redis