一、鏡像相關命令:
鏡像:Docker鏡像是由文件系統疊加而成(是一種文件的存儲形式);是docker中的核心概念,可以認為鏡像就是對某些運行環境或者軟件打的包,用戶可以從docker倉庫中下載基礎鏡像到本地,比如開發人員可以從docker倉庫拉取(下載)一個只包含centos7系統的基礎鏡像,然后在這個鏡像中安裝jdk、mysql、Tomcat和自己開發的應用,最后將這些環境打成一個新的鏡像。開發人員將這個新的鏡像提交給測試人員進行測試,測試人員只需要在測試環境下運行這個鏡像就可以了,這樣就可以保證開發人員的環境和測試人員的環境完全一致。
1.1 查看鏡像:
docker images
REPOSITORY:鏡像名稱
TAG:鏡像標簽
IMAGE ID:鏡像ID ;
CREATED:鏡像的創建日期
SIZE:鏡像大小
1.2 搜索鏡像:
docker search 鏡像名稱
NAME:鏡像名稱
DESCRIPTION:鏡像描述
STARS:用戶評價,反應一個鏡像的受歡迎程度
OFFICIAL:是否官方
AUTOMATED:自動構建,表示該鏡像由Docker Hub自動構建流程創建的
1.3 拉取鏡像:
docker pull 鏡像名稱
docker pull 鏡像名稱:版本號(若不指定則會拉取最新的版本)
# 如拉取centos 7;
docker pull centos:7
1.4 刪除鏡像:
docker rmi 鏡像id
刪除全部鏡像:docker rmi ` docker images -q ` (慎用)
二、容器相關的命令
2.1 查看正在運行的容器:
docker ps
2.2 查看所有容器:
docker ps -a
2.3 創建並啟動容器
可以基於已有的鏡像來創建和啟動容器:docker run
-i:表示運行容器
-t:表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即分配一個偽終端。
--name :為創建的容器命名。
-v:表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上。
-d:在run后面加上-d參數,則會創建一個守護式容器在后台運行(這樣創建容器后不會自動登錄容器,如果只加-i -t兩個參數,創建后就會自動進去容器)。
-p:表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p做多個端口映射
2.3.1 創建並啟動交互式容器:
啟動交互式容器之后是直接進入容器終端;可以查看容器的文件結構;使用exit命令則會退出終端並且停止容器。
# 先拉取一個鏡像;這一步不是每次啟動容器都要做的,而是因為前面我們刪除了鏡像,無鏡像可用所以才再拉取一個
docker pull centos:7
#創建並啟動名稱為 mycentos7 的交互式容器;下面指令中的鏡像名稱 centos:7 也可以使用鏡像id
docker run -it --name=mycentos7 centos:7 /bin/bash
2.3.2 守創建並啟動護式容器
創建一個守護式容器;如果對於一個需要長期運行的容器來說,我們可以創建一個守護式容器。命令如下(容器名稱不能重復):
創建並啟動守護式容器
docker run -di --name=mycentos2 centos:7
2.4 登錄進入容器:
docker exec -it 容器名稱 (或者 container_id) /bin/bash
例子1:docker exec -it 927b54db4397 bash
例子2:docker exec -it mycentos2 /bin/bash
2.5 容器拷貝 docker cp
操作步驟:
本機根目錄下創建文件: touch abc.txt
docker cp abc.txt mycentos7:/ 把本機的abc.txt復制到 mycentos7的根目錄下
docker exec -it mycentos7 /bin/bash 進入mycentos7
ll 查看文件是否復制成功
touch cba.txt 在mycentos7 中創建 1個cba.txt 文件
docker cp mycentos7:/cba.txt /本機路徑 在本機中復制cba.txt到本機下
2.6 停止正在運行的容器:
docker stop 容器名稱或者ID
2.7 啟動已運行過的容器:
docker start 容器名稱或者ID
2.8 查看容器ip :
在linux宿主機下查看 mycentos3 的ip :
docker inspect mycentos3
2.9 容器刪除:只能刪除停止狀態的容器;
docker rm 容器名稱或者容器id
docker rm `docker ps -a -q` 刪除所有的容器(慎用)
小結:
守護式容器在啟動之后會一直在后台運行,即使進入容器之后執行exit命令也不會停止容器;
適用於需要長期運行容器的情況