1. 程式人生 > >Docker 入門之容器

Docker 入門之容器

原文地址:https://renguangli.com/articles/docker-container

Docker容器常用命令介紹和使用

檢視容器

使用docker ps命令檢視執行著的容器

[[email protected] ~]# 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命令檢視所有的容器

[[email protected] ~]# 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 ps -q命令檢視執行著的容器Id

[[email protected] ~]# docker ps -a
CONTAINER ID       
229929eb660f        
3ceb621f4aa9        

建立容器

使用docker create image:tag name命令建立一個容器並給容器一個name,例如

[[email protected] ~]# docker create nginx:latest nginx
fd47cedfcce5cd2879ef65b342b1cd4130cbcc081cec532ff7af1744ad589116

建立成功返回容器ID

如果不加name的話隨機分配一個名字

啟動容器

使用docker start container_name/container_id來啟動一個容器,以上述nginx容器為例

[[email protected] ~]# docker start nginx 
# 或者 
[[email protected] ~]# docker start fd47cedfcce5cd2879ef65b342b1cd4130cbcc081cec532ff7af1744ad589116

新建並啟動容器

建立容器後可以用docker start命令啟動容器,也可以用docker run命令直接新建並啟動容器,docker run相當於先執行docker create命令在執行docker start命令。例如,輸出一個"hello docker"

[[email protected] ~]# docker run ubuntu echo "hello docker"
hello docker

這跟在本次執行echo "hello docker"幾乎沒有任何區別,但是在執行docker run命令時經歷了複雜的操作:

  • 檢查本地是否存在指定的映象,,不存在就從共有倉庫下載
  • 利用映象建立並啟動一個容器
  • 分配一個檔案系統給容器,並在只讀的映象層外面掛載一個可讀寫層
  • 從宿主主機配置的網橋介面中橋接一個虛擬介面到容器中
  • 從網橋的地址池中配置一個IP地址給容器
  • 執行使用者指定的應用程式
  • 執行完畢後容器自動終止

docker run -d命令會讓容器在後臺執行

docker logs命令可以檢視容器日誌

docker logs -f命令可以像tail -f命令一樣檢視容器日誌

終止容器

使用docker stop container_name/container_id命令停止一個容器

[[email protected] 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
[[email protected] html]# docker stop 16555d4ebdf0 或者 docker stop jolly_goodall

docker stop命令首先想容器傳送SIGKILL的訊號,等待一段時間後(預設10秒)在傳送SIGKILL訊號來終止容器
docker kill 命令會直接傳送SIGKILL訊號來終止容器

終止的容器可以使用docer start來啟動一個容器

執行著的容器可以使用docker restart來重啟容器

刪除容器

刪除某個容器

docker rm container_name/container_id

所有刪除容器

docker rm $(docker ps -a -q)

參考資料

Docker技術入門與實戰

Docker中文社群: http://www.docker.org.cn/