docker常用配置以及命令( 二 )


docker常用配置以及命令

文章插圖
attach 和exec的區別
attach 和exec主要區別如下
  • attach 直接進入容器啟動命令的終端,不會啟動新的進程.
  • exec 則是在容器中打開新的終端 并且可以啟動新的進程
  • 如果像直接在終端查看命令的輸出 用attach
  • 其他請看用exec
其他的一些命令# 啟動死掉的容器docker start 短id# 重啟 docker容器docker restart 短id# 暫停 docker 容器 # 不會占用資源docker pause 短id# 重新運行 容器docker unpause 短id# 刪除docker 容器 #可以同時刪除兩個 空格隔開docker rm 短id 短id# 批量刪除 所有死掉的dockerdocker rm -v $(docker ps -aq -f status=exited)# 刪除鏡像docker rmi hello-world# 刪除異常停止的容器docker rm `docker ps -a | grep Exited | awk '{print $1}'` #刪除名稱或標簽為none的鏡像docker rmi -f`docker images | grep '<none>' | awk '{print $3}'`# 清除所有無容器使用的鏡像 注意,此命令只要是鏡像無容器使用(容器正常運行)都會被刪除,包括容器臨時停止docker system prune -a4. docker-appium的使用docker 安裝apoium 巨坑?。?不建議安裝
這里推薦另一種方式 直接從docker hub上安裝
sudo docker search appium
docker常用配置以及命令

文章插圖
然后 docker pull 鏡像即可
sudo docker pull appium/appium
docker常用配置以及命令

文章插圖
如果下載的太慢 可手動配置加速器
  • 創建一個Docker的配置文件 。
    • sudo vim /etc/docker/daemon.json
  • 編寫配置文件
    • { "registry-mirrors": ["此處寫鏡像源地址"]
    • Docker鏡像源地址:
官方國內鏡像 https://registry.docker-cn.com
網易 http://hub-mirror.c.163.com
中國科技大學 https://docker.mirrors.ustc.edu.cn
  • 重新加載配置文件并重啟Docker 。
    • sudo systemctl daemon-reload
    • sudo systemctl restart docker
  • 驗證鏡像源是否修改成功
    • sudo docker info
    • 查看docker 容器ip
      • docker inspect 容器ID | grep IPAddress
5. 自己提交一個鏡像我們運行的容器可能在鏡像的基礎上做了一些修改,有時候我們希望保存起來,封裝成一個更新的鏡像 , 這時候我們就需要使用 commit 命令來構建一個新的鏡像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的鏡像名:Tag我們拉取一個tomcat鏡像 并持久化運行 且設置與宿主機進行端口映射
docker pull tomcatdocker run -itd -p8080:8080 --name tom tomcat /bin/bash使用 提交命令 將在運行的tomcat 容器 打包為一個全新的鏡像 名字為tom Tag為1.0
docker commit -a="leilei" -m="第一次打包鏡像,打包后直接訪問還會404嗎" 231f2eae6896 tom:1.06. Docker鏡像創建的兩種方法6.1. 使用commit 命令創建docker鏡像創建一個nginx鏡像sudo docker run --name webserver -d -p 80:80 nginx運行完命令 創建成功然后我們訪問瀏覽器
假設我們不喜歡這個頁面 想修改這個頁面我們可以進入docker容器內sudo docker exec -it webserver bash
然后 輸入命令echo '<h1>hello,docker!</h1>' >/usr/share/nginx/html/index.html然后就修改了頁面了
docker diff命令我們修改了文件即修改了存儲層可以通過命令查看剛剛有哪些操作sudo docker diff webserver
Docker commit 命令Docker commit 命令可以疊加內容從而重新生成一個鏡像docker commit [選項]<容器ID或容器苗> [<倉庫名>][:<標簽>]
sudo docker commit --author "lzc <hybpjx@163.com>" --message "modify Default page" webserver nginx:v2
這個時候就可以通過sudo docker images來查看了
或者通過sudo docker histroy nginx:v2
我們再創建一個為81端口的nginx容器sudo docker run --name web2 -d -p 81:80 nginx:v2然后訪問 192.168.2.91:81可以發現 頁面還是一樣的 說明鏡像創建成功
?。。。?慎用 docker commit 命令使用docker commit 命令雖然可以比較直觀的幫助理解鏡像分層的概念 但是實際開發環境不會這么使用因為由于命令執行了 很多文件發生了改動 這還僅僅是簡單錯誤 如果是安裝文件 編譯構建 那么鏡像會非常臃腫,此外 使用docker commit 意味著 所有對鏡像的操作都是黑箱操作,生成的鏡像也被稱之為 黑箱操作

推薦閱讀