天天看點

Docker使用指令和技巧

既然已經搭建好了Docker關于基礎的指令以及使用方式我們當然要進行學習,還有一些小技巧比如批量操作鏡像加速和怎麼尋找合适的Docker-Images都是本節的内容

附上:

喵了個咪的部落格:

w-blog.cn 官方Git位址: https://github.com/moby/moby

1.Docker基本操作指令

docker容器生命周期管理

  • docker run 在一個新的容器執行一個指令
  • docker start 開一個或者更多已經停止的容器
  • docker stop 停止一個運作的容器
  • docker restart 重新開始一個運作的容器
  • docker kill 殺死一個運作的容器
  • docker rm 删除一個或更多的容器
  • docker pause 暫停一個容器的所有程序
  • docker unpaunse 恢複一個容器的所有程序

docker容器操作運維

  • docker ps 列出容器
  • docker inspect 列出關于容器或鏡像的底層資訊
  • docker top 顯示一個容器運作的程序
  • docker attach 附上一個運作的容器
  • docker events 得到實時的來自服務的事件
  • docker log 獲得一個容器的日志
  • docker wait 阻塞直到一個容器停止,然後列印它的退出代碼
  • docker export 導出一個容器的檔案系統作為一個tar檔案
  • docker port 列出容器映射的端口

docker版本管理

  • docker commit 建立一個新的鏡像從一個容器
  • docker cp 從容器複制一個檔案或目錄到本地目錄或标準輸出
  • docker diff 展示一個容器檔案系統的變化

docker鏡像倉庫

  • docker login 登入倉庫
  • docker pull 拉取鏡像
  • docker push 推送鏡像
  • docker search 搜尋鏡像

docker本地鏡像管理

  • docker images 列出本地的鏡像
  • docker rmi 删除本地的鏡像
  • docker tag 打标簽本地的鏡像
  • docker build 通過Dockerfile建構本地的鏡像
  • docker histroy 列出鏡像的曆史
  • docker save 儲存本地的鏡像為一個tar檔案
  • docker import 通過tar導入鏡像
  • docker load 加載tar鏡像

docker其它指令

  • docker info
  • docker version

2. 小技巧

批量操作

很多時候發現可能需要清理Docker環境,但是容器挨個停止挨個删除确實太過于麻煩了,使用如下指令可以做到很快速的處理批量删除

> docker ps // 檢視所有正在運作容器
> docker stop containerId // containerId 是容器的ID
> docker ps -a // 檢視所有容器
> docker ps -a -q // 檢視所有容器ID
> docker stop $(docker ps -a -q) //  stop停止所有容器
> docker rm $(docker ps -a -q) //   remove删除所有容器
> docker rmi $(docker images -a -q) //   删除所有的鏡像           

hub.docker

既然使用了docker,就會大量的使用别人提起處理好的環境常常我們去

https://hub.docker.com/

中尋找我們需要的鏡像

搜尋你需要的鏡像

預設docker在拉取鏡像的時候就會從hub.docker中拉取,使用如下指令就可以拉取上面第一個鏡像

docker pull richarvey/nginx-php-fpm           

國内鏡像倉庫和鏡像源

國内鏡像倉庫可以申請一個阿裡雲賬号直接使用它的免費Docker倉庫

對應的Docker源位址需要大家去阿裡雲容器鏡像管理中申請,擷取使用其他國内Docker源(如果不配置在後續的K8S安裝非常慢)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF

# 重新開機
sudo systemctl daemon-reload
sudo systemctl restart docker           

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!

繼續閱讀