Docker - 01 經常使用指令、參數配置速查表

docker

目錄

Docker - 01 經常使用指令、參數配置速查表

Centos7 安裝 Docker

阿里鏡像安裝

官方repo地址被牆,因此我用阿里html

# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加軟件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新並安裝 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啓Docker服務
sudo systemctl start docker

加速

國內鏡像慢,因此我用阿里linux

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

命令速查表

經常使用度排序docker

鏡像操做

功能 命令
拉取鏡像 docker pull [鏡像名稱:版本]
鏡像列表 docker images
刪除鏡像 docker rmi [鏡像名稱:版本]
鏡像操做記錄 docker history [鏡像名稱:版本]
給鏡像設置新的倉庫 docker tag [鏡像名稱:版本] [新鏡像名稱:新版本]
查看鏡像詳細 docker inspect [鏡像名稱:版本]
搜索鏡像 docker search [關鍵字]
倉庫登陸 docker login
docker tag 指令獲得了一個新的,和原來的鏡像如出一轍的鏡像。後續文談到私倉很是有用。

容器操做

功能 命令
啓動容器並進入 docker run -ti --name [容器名稱] [鏡像名稱:版本] bash
容器列表 docker ps -a
容器提交爲新的鏡像 docker commit [容器名稱] my_image:v1.0
容器後臺運行 docker run -d --name [容器名稱] [鏡像名稱:版本] bash -c "echo hello world"
容器結束後自動刪除 docker run --rm --name [容器名稱] [鏡像名稱:版本] bash -c "echo hello world"
刪除容器 docker rm [容器名稱]
進入容器 exec docker exec -ti [容器名稱] bash
進入容器 attach docker attach [容器名稱]
中止容器 docker stop [容器名稱]
Docker 日誌 docker logs [容器名稱]
查看容器詳細 docker inspect [容器名稱]
查看容器最近一個進程 docker top [容器名稱]
繼續運行被中止的容器 docker restart [容器名稱]
暫停一個容器進程 docker pause [容器名稱]
取消暫停 docker unpause [容器名稱]
終止容器 docker kill [容器名稱]
端口映射 docker run -ti --name [容器名稱] -p 8080:80 [鏡像名稱:版本] bash
容器互聯 docker run -ti --name [容器名稱] --link [被互聯容器名稱]:[容器內名稱] net:v1.0 bash
複製容器文件到宿主 docker cp [容器名稱]:[容器內目錄] .
  • execattach 區別
在 exec 裏面執行 exit 命令,你只是關掉了 exec 命令新開的進程,而主進程依舊在運行,因此容器並不會中止
在 attach 裏面運行 exit 命令,你實際是終止了主進程,因此容器也就隨之被中止了
  • -p 配置
-p hostPort:containerPort 映射全部 IP 地址上的指定端口到容器內部
-p ip:hostPort:containerPort 映射指定 IP 地址上的指定端口到容器內部
-p ip::containerPort 映射指定 IP 地址上的任意端口到容器內部

內存限制

參數 簡介
-m, - -memory 內存限制,格式:數字+單位,單位能夠是b, k, m, g,最小4M
-- -memory-swap 內存和交換空間總大小限制,注意:必須比-m參數大

CPU限制

參數 簡介
-- -cpuset-cpus="" 容許使用的CPU集
-c,- -cpu-shares=0 CPU共享權值
-- -cpu-quota=0 限制CPU CFS配額,必須不小於1ms,即>=1000
cpu-period=0 限制CPU CFS調度週期,範圍是100ms~1s,即[1000, 1000000]
sudo docker run -ti --cpuset-cpus="1,3" --name cpuset [鏡像名稱:版本] bash
好比下面的指令指定容器進程能夠在 CPU1 和 CPU3 上運行

數據卷

功能 命令
建立一個卷 docker run -ti --name [容器名稱] -v /[數據卷名稱] [鏡像名稱:版本] bash
刪除一個數據卷 docker rm -v [數據卷名稱]
掛載宿主目錄 docker run -ti --name [容器名稱] -v [宿主目錄]:[容器內目錄] [鏡像名稱:版本] bash
數據卷容器 docker run -ti -d -v /[數據卷名稱] --name [數據卷容器名稱] [鏡像名稱:版本]
使用數據卷容器 docker run -ti --volumes-from [數據卷容器名稱] --name [新容器名稱] [鏡像名稱:版本] bash
清除全部 docker volume prune
備份數據卷 1 - 創建容器 docker run -it --name vol_simple -v /data ubuntu /bin/bash
備份數據卷 2 - 備份 docker run --rm --vloumes-from vol_simple -v$(pwd):/backup ubuntu tar cvf /backup/data.tar /data
恢復數據卷 1 - 創建目標容器 docker run -it --name vol_bck -v /data ubuntu /bin/bash
恢復數據卷 2 - 解壓 docker run --rm --volumes-from vol_bck -v $(pwd):/backup ubuntu tar xvf /backup/data.tar -C /
備份數據卷: 指令啓動了一個臨時的容器,這個容器掛載了兩個volume,第一個volume與要備份的volume共享,第二個volume將宿主機的當前目錄掛載到容器的/backup下。容器運行後將要備份的內容(/data文件夾)備份到/backup/data.tar,而後刪除容器,備份後的data.tar就留在了當前目錄。

恢復數據卷: 首先運行了一個新容器做爲數據恢復的目標。第二行指令啓動了一個臨時容器,這個容器掛載了兩個volume,第一個volume與要恢復的volume共享,第二個將宿主機的當前目錄掛載到容器的/backup下。因爲以前備份的data.tar在當前目錄下,那麼它在容器中的/backup也能訪問到,容器啓動後將這個存檔文件中的/data恢復到跟目錄下,而後刪除容器,恢復後的數據在vol_bck的volume中了。json

參考


© 會煮咖啡的貓咪ubuntu

相關文章
相關標籤/搜索