關於ubuntu 16.04 docker常用命令


1、sudo docker ps -a

查看當前docker實例的信息:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES

2、宿主機和容器之間的數據拷貝:

sudo docker cp shared_dir/data/  CONTAINER ID:/home/xxx/ 或者 sudo docker cp shared_dir/data/  NAMES:/home/xxx/

sudo docker cp CONTAINER ID:/home/xxx/ shared_dir/

3、常用命令

docker container ls -a #查看container信息

docker exec -it containerID bash #進入container

docker run -p 4000:80 imageName #將機器的 4000 端口映射到容器的 80 端口

docker run -d -p 4000:80 imageName # 內容相同,但在分離模式下

docker ps # 查看所有正在運行的容器的列表

docker stop containerID # 平穩地停止指定的容器
docker ps -a # 查看所有容器的列表,甚至包含未運行的容器
docker kill containerID # 強制關閉指定的容器
docker rm containerID # 從此機器中刪除指定的容器
sudo docker rm $(sudo docker ps -aq) # 從此機器中刪除所有容器
docker images -a # 顯示此機器上的所有鏡像
docker rmi imagename # 從此機器中刪除指定的鏡像
sudo docker rmi $(sudo docker images -q) # 從此機器中刪除所有鏡像
docker login # 使用您的 Docker 憑證登錄此 CLI 會話
docker tag <image> username/repository:tag # 標記 <image> 以上傳到鏡像庫
docker push username/repository:tag # 將已標記的鏡像上傳到鏡像庫
docker run username/repository:tag # 運行鏡像庫中的鏡像

3、制作鏡像:

docker build -t imagename Dockerfilepath

# imagename:鏡像名稱,自定義

# Dockerfilepath:Dockerfile 所在文件夾名稱,當前名錄為 “.”

如: docker build -t hello_world .

4、運行鏡像:

docker run -it --name c_name imagename
-it:可交互
c_name:container名稱,自定義
如:
docker run -it --name hello5 hello_world

5、Docker鏡像文件導出和導入

  • 鏡像文件導出

sudo docker save imageid > xxxx.tar

  • 鏡像文件導入

sudo docker load < xxxx.tar

 

鏡像保存/載入:docker load/docker save;將一個鏡像導出為文件,再使用docker load命令將文件導入為一個鏡像,會保存該鏡像的的所有歷史記錄。比docker export命令導出的文件大,很好理解,因為會保存鏡像的所有歷史記錄。

容器導入/導出:docker import/docker export;將一個容器導出為文件,再使用docker import命令將容器導入成為一個新的鏡像,但是相比docker save命令,容器文件會丟失所有元數據和歷史記錄,僅保存容器當時的狀態,相當於虛擬機快照。

 

6、啟動、停止、重啟容器命令:

docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id

7、執行docker ps命令,出現 "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ..."問題

  執行sudo service docker start 命令,啟動docker服務,返回

docker start/running, process 2662

  此時進程啟動成功,再執行docker ps,問題解決

 

8、從容器中導入和導出及啟動

    (1):導出容器
    如果要導出本地某個容器,可以使用 docker export 命令,導出容器快照到本地文件。
  $ sudo docker ps -a
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
  4391a814370e        ubuntu        "/bin/bash"         16 hours ago        Exited (0) 11 hours ago                       test
  $ sudo docker export 4391a814370e > test_export.tar

    (2):導入容器快照
    可以使用 docker import 從容器快照文件中再導入為鏡像,例如
  $ cat test_export.tar | sudo docker import - test2:v1.0
  $ sudo docker images
  REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
  test2            v1.0             9d37a6082e97        About a minute ago   100.3 MB
 (3):使用導入容器生成的鏡像,再次生成容器時候需要指定command("/bin/bash")

  使用GPU方式:

       sudo docker run -it -v /home/share:/share -p 192.168.10.214:5000:80  --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all test2:v1.0 "/bin/bash"

 9、其實只需要一條命令,就能實現Docker和宿主機之間共享文件。啟動Docker鏡像的命令一般如下:
  docker run -it xxx:latest /bin/bash  其中-it后面的參數就是你docker鏡像的名稱。
  現在只需要加一個-v參數即可。
  docker run -it -v /home/share:/share microsoft/dotnet:latest /bin/bash
  上面命令表示:把宿主機的/home/share目錄掛載到xxx:latest容器的/share目錄下
  執行完上面命令進入Docker容器后,進入/share文件夾下,ls后就會看到原來宿主機下目錄“/home/share”的文件。

10、重命名鏡像:

    docker tag f534e2434f94(imageid) llf(repostitory_name):v1.0(tag_flag)

 

11、docker stats 查詢docker內存等狀態

12、sudo docker ps -as 查看容器導出后的大小

 

13:修改容器存儲路徑:

 (1) vim /etc/systemd/system/docker.service.d/override.conf

增加: --graph = /path

(2)

systemctl daemon-reload

systemctl restart docker

systemctl enable docker

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM