Docker常用命令

在正式寫這篇博客前,我先要吐槽下CSDN,昨天這篇文章已經寫完了,並寫已經在CSDN正常發佈了,但是卻找不到文章了,所以得重新再寫一次,還好我有備份,我可真是個小機靈鬼,233333

啓動docker

service docker start

查看docker信息

docker info

查看docker中所有的容器

docker ps -a

恢復正在運行的容器

docker attach 容器ID

啓動並以bash並進入容器

docker attach -ai 容器ID

查看所有的鏡像

docker images

查看鏡像/容器詳情

docker inspect    容器ID/鏡像ID

從鏡像倉庫中拉取或者更新指定鏡像

docker pull 鏡像名:鏡像標籤

刪除容器

docker rm  容器ID

刪除鏡像

docker rmi    鏡像ID

創建一個新的容器並運行

docker run  鏡像名稱

舉例

docker run -p 10066:80 --name nginx-web -it 鏡像ID /bin/bash

作用:以外部的10066端口映射內部的80端口,並啓動ubuntu鏡像 命名爲nginx-web

        當以bash方式進入容器後,使用Ctrl + p + q 可以退出容器但不停止容器

查找某個鏡像

docker search  鏡像名稱

運行某個容器

docker start  容器ID

停止正在運行的容器

docker stop  容器ID

提交容器

docker commit -a 'author'  -m 'commit image' 容器名稱  鏡像名稱

重命名容器名

docker rename 老容器名稱 新容器名稱

重命名鏡像

docker tag 老鏡像名稱   新鏡像名

兩個容器互聯

docker run -it --name 容器名稱 --link=待連接的容器名稱:待連接的容器別名  鏡像名稱

   示例

docker run -it --name cct3  --link=cct1:webtest  base-net

  解釋: 建立一個基於base-net 鏡像,名稱爲cct3的容器,並且建立與cct1容器的連接,cct1在cct3的別名爲webtest

            其實就是docker修改了cct3的hosts文件,所以在cct3中,可以直接使用ping webtest就可以直接ping通,

             而不用使用IP這種方式可以防止cct1的IP改變後,cct3無法訪問的問題

建立數據卷(目錄)

docker run -it --name  volume-demo -v /home/user/datavolume:/data ubuntu /bin/bash

   詳解:宿主目錄爲/home/user/datavolume ,volume-demo容器的映射路徑爲/data

            當volume-demo容器的 /data 目錄中有文件更新時,/home/user/datavolume也會同步更新

建立數據卷(容器)

docker run -it --name  新容器名稱 -volumes-from  數據卷容器名 鏡像名 /bin/bash

備份數據卷

docker run --volumes-from dvt3 -v /home/backup:/backup --name dvt10 ubuntu tar cvf /backup/dvt3.tar /datavolume1

   詳解: 新建立一個基於ubuntu鏡像且名爲dvt10的容器,掛在在dvt3數據捲上,且執行tar cvf /backup/dvt3.tar /datavolume1命                 令,執行完後,宿主機的會生成一個 /home/backup/dvt3.tar的備份文件

還原數據卷

docker run --volumes-from dvt3 -v ~/backup:/backup --name dvt10 ubuntu tar xvf /backup/dvt3.tar

  詳解: 新建立一個基於ubuntu鏡像且名爲dvt10的容器,掛在在dvt3數據捲上,且執行tar xvf /backup/dvt3.tar命令,執行完後,              將在dvt3容器對應的目錄中生成dvt3.tar的文件內容

生成鏡像文件

docker save -o 待生成的tar文件名  源鏡像名

加載鏡像文件

docker load -i 鏡像文件

生成容器文件

docker export -o 待生成的tar包名稱 容器名稱

加載容器文件

docker import 待加載的tar包容器文件名 鏡像名稱

使用Dockerfile生成鏡像

docker build -t 新鏡像名稱 .

生成一個鏡像名爲image-name的鏡像

千萬注意: 命令最後的 " ." 代表的不是當前目錄下Dockerfile路徑,這裏指的是上下文路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章