基本命令
倉庫相關操作
docker pull? ? #從遠程倉庫拉取鏡像到本地
docker push? ? #推送本地鏡像到遠程倉庫
docker search? #在倉庫搜索鏡像
docker login? ? #登錄到官方倉庫Docker Hub
docker logout? #退出登錄
鏡像相關操作
docker build? ? #從Dockerfile構建鏡像
docker pull? ? #同上
docker push? ? #同上
docker history? #顯示鏡像的歷史信息
docker images? #列出鏡像
docker rmi? ? ? #刪除鏡像
docker tag? ? ? #給鏡像打上tag標簽
docker run? ? ? #創建容器并啟動容器
docker create? #創建容器
docker commit? #將修改后的容器生成鏡像
docker load? ? #從壓縮包中加載鏡像
docker import? #
docker save? ? #將鏡像保存到壓縮文件
容器相關操作
docker attach? #依附到一個正在運行的容器中
docker exec? ? #進到正在運行的容器中執行命令
docker cp? ? ? #在容器和本地系統間復制文件
docker update? #將一個容器內所有的進程從暫停狀態中恢復
docker ps? ? ? #列出主機中的容器
docker port? ? #查找一個nat到私有網口的公共口
docker top? ? ? #查看一個容器中正在運行的進程信息
docker logs? ? #查看日志文件
docker diff? ? #檢查容器內文件系統的修改
docker status? #輸出容器的資源使用統計信息
docker wait? ? #阻塞直到容器終止
docker start? ? #啟動已創建的容器
docker pause? ? #暫停運行中的容器
docker unpause? #使暫停的容器恢復運行
docker stop? ? #停止容器運行
docker rename? #容器改名
docker restart? #容器重啟
docker kill? ? #關閉運行中的容器
docker rm? ? ? #刪除容器
docker export? #導出容器內容為tar包
docker run? ? ? #同上
docker create? #同上
docker commit? #同上
其他基本命令
docker events? #從服務端獲取實時的事件
docker info? ? #查看系統相關信息
docker inspect? #顯示Docker對象的具體配置信息,包括容器,鏡像,網絡等
docker version? #輸出Docker的版本信息
管理命令
docker container? ? #容器管理
docker image? ? ? ? #鏡像管理
docker network? ? ? #網絡管理
docker node? ? ? ? #節點管理
docker plugin? ? ? #插件管理
docker secret? ? ? #
docker service? ? ? #服務管理
docker stack? ? ? ? #
docker swarm? ? ? ? #集群管理
docker system? ? ? #
docker volume? ? ? #卷管理
================================================================
Docker命令
管理命令:
? container? 管理容器
? image? ? ? 管理鏡像
? network? ? 管理網絡
? node? ? ? ? 管理Swarm節點
? plugin? ? ? 管理插件
? secret? ? ? 管理Docker secrets
? service? ? 管理服務
? stack? ? ? 管理Docker stacks
? swarm? ? ? 管理Swarm集群
? system? ? ? 查看系統信息
? volume? ? ? 管理卷
? 如:docker container ls 顯示所有容器
普通命令:
? attach? ? 進入一個運行的容器
? build? ? ? 從一個DockerFile構建鏡像
commit從容器創建一個鏡像
? cp? ? ? ? ? 從容器和主機文件系統之間拷貝文件
create創建一個容器
? diff? ? ? ? 檢查容器文件系統上的更改
events從服務器獲取實時事件
? exec? ? ? ? 在正在運行的容器中運行命令
export將容器的文件系統導出為tar存檔
? history? ? 顯示鏡像的歷史記錄
? images? ? ? 查看鏡像列表
import從歸檔文件中創建鏡像
? info? ? ? ? 顯示系統范圍的信息
? inspect? ? 返回Docker對象的低級信息
killkill運行中的容器
load從存檔或者STDIN加載鏡像
? login? ? ? 登陸docker鏡像倉庫
? logout? ? ? 退出docker鏡像倉庫
logs獲取一個容器的日志
? pause? ? ? 暫停一個或多個容器中的所有進程
? port? ? ? ? 查看端口映射或容器的特定映射列表
? ps? ? ? ? ? 查看容器列表
? pull? ? ? ? 從鏡像倉庫拉取鏡像
? push? ? ? ? 將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
rename重命名容器
? restart? ? 重啟容器
? rm? ? ? ? ? 刪除容器
? rmi? ? ? ? 刪除鏡像
? run? ? ? ? 創建一個新的容器并運行一個命令
save將指定鏡像保存成 tar 歸檔文件
search從Docker Hub搜索鏡像
start啟動容器
? stats? ? ? 實時顯示容器資源使用情況的統計信息
stop停止容器
? tag? ? ? ? 標記本地鏡像,將其歸入某一倉庫
? top? ? ? ? 展示一個容器中運行的進程
? unpause? ? 恢復容器中所有的進程
update更新容器配置
version顯示Docker的版本信息
wait阻塞直到容器停止,然后打印退出代碼
? 如:docker images 顯示所有鏡像
下載鏡像
$ docker pull centos
查看已經下載的鏡像
$ docker images
? ? REPOSITORY? ? ? ? ? TAG? ? ? ? ? ? ? ? IMAGE ID? ? ? ? ? ? CREATED? ? ? ? ? ? SIZE
centos? ? ? ? ? ? ? latest49f7960eb7e46weeks ago200MB
hello-world? ? ? ? latest? ? ? ? ? ? ? f2a91732366c8months ago1.85kB
運行一個鏡像并生成容器
//運行一個centos鏡像,并執行/bin/bash命令
$ docker run centos /bin/bash
輸入命令docker ps或者docker container ls查看運行中的容器,發現列表為空,原因是容器在執行完成命令后會自動退出,下面介紹讓讓容器停留在后臺的方法
$ docker ps
? ? CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? COMMAND? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES
$ docker container ls
? ? CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? COMMAND? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES
使用命令docker ps -a或者docker container ls -a 查看所用容器,并顯示了容器的狀態
$ docker ps -a
CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? COMMAND? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES
5525373371f3? ? ? ? centos"/bin/bash"7minutes ago? ? ? Exited (0)7minutes ago? ? ? ? ? ? ? ? ? ? ? ? nifty_rosalind
1.啟動一個容器并后臺運行
docker run命令 通過增加-i -t參數可以讓容器并進入容器
docker run -i -t centos /bin/bash
按 Ctrl + P + Q 退出容器,再用 docker ps 進行查看
$ docker ps
CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? COMMAND? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES
61b041e4e063? ? ? ? centos"/bin/bash"3minutes ago? ? ? Up3minutes? ? ? ? ? ? ? ? ? ? ? ? ? ? nervous_saha
狀態顯示仍在運行中
$ docker ps
CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? NAMES
36afde543eb5? ? ? ? mysql:5.7"docker-entrypoint.s…"About anhourago? Up About anhour0.0.0.0:3306->3306/tcp? mymysql
$ docker exec -it36afde543eb5 /bin/bash
-i 保持STDIN打開 -t 分配一個虛擬TTY窗口
首先到https://hub.docker.com/注冊一個賬號,保存下用戶名密碼 2.控制臺登陸dockerhub賬戶
$ docker login
? ? 輸入剛注冊的用戶名密碼
查看鏡像
$ docker images
REPOSITORY? ? ? ? ? TAG? ? ? ? ? ? ? ? IMAGE ID? ? ? ? ? ? CREATED? ? ? ? ? ? SIZE
redis? ? ? ? ? ? ? latest? ? ? ? ? ? ? f06a5773f01e2days ago83.4MB
選擇需要上傳的鏡像,重命名為指定的格式
$ docker? tag redis username/myredis:v1
username:為自己注冊的用戶名
myredis:為自己為鏡像取的名字
v1:為任意設置的版本號
完成上述操作后,即可提交鏡像到自己的倉庫
docker pull username/myredis:v1
//將宿主機的81端口映射到容器的80端口
//將宿主機的/develop/data卷,映射到容器的/data卷
$ docker run -i -t -p81:80-v /develop/data:/datacentos /bin/bash
-p:映射端口號 -v:磁盤目錄映射
運行中的容器無法映射新的端口號,也無法更改端口號映射,但可以通過兩種方法解決
iptable轉發端口
//查看容器ip
$ docker inspect36afde543eb5 | grep IPAddress
"IPAddress":"172.17.0.2"
//將主機的8081端口映射到宿主機的8080端口
$ iptables -t nat -A? DOCKER -p tcp --dport8081-j DNAT --to-destination172.17.0.2:8080
先提交容器為鏡像,再運行這個容器,同時指定新的端口映射
//提交容器為鏡像
$ docker commit9995ffa15f46? mycentos:0.1
//停止舊的容器
$ docker stop9995ffa15f46
//重新從舊的鏡像啟動容器
$ docker run -i -t? -p8081:8080mycentos:0.1
$ docker build -tmyimage:v1 .
-t :指定鏡像名稱和標簽,格式為'name:tag' .: 最后一個點代表當前目錄,也可以換成其它的路徑