動態

詳情 返回 返回

2、Docker鏡像和容器使用 - 動態 詳情

2.1、鏡像常用命令

  01)、查找鏡像:docker search 鏡像名

  02)、拉取鏡像:docker pull 鏡像名:版本號

  03)、刪除鏡像:docker rmi 鏡像名

  04)、獲取本地鏡像列表:docker images

2.1.1、虛懸鏡像

  虛懸鏡像:沒有鏡像名,也沒有標籤的鏡像;

  導致原因:構建和刪除鏡像時發生錯誤,可能會導致;

  查詢命令:docker images -f dangling=true

  刪除命令:

    方式一:docker image prune

    方式二:docker rmi $(docker images -q -f dangling=true)

2.2、容器常用命令

  01)、啓動容器:

    docker run --name <容器名稱> -d -p <主機端口:容器端口> <鏡像名稱>

      -d:後台運行

      -p:端口映射

    舉例:docker run --name nginx-test -d -p 80:80 nginx

  02)、進入docker容器內部

    方式1:docker exec -it <容器名稱、容器 ID> /bin/bash

    方式2:docker attach <容器 ID>

    注意:使用 attach 的方式進入容器內部,如果從這個容器退出,會導致容器停止,所以不推薦使用該方式。

    方式3:交互式啓動進入容器內部

      docker run -it [鏡像名稱、鏡像id]  /bin/bash

      注意使用該方式啓動並進入容器內部,退出方式有2種,

      exit退出,容器停止;

      ctrl+p+q退出,容器不會停止;

  03)、查看容器

    查看所有的容器(包括啓用和未啓用)命令:docker ps -a

    查看啓用的容器命令:docker ps

  04)、啓動已停止運行的容器

    docker start <容器 ID、容器名稱>

  05)、停止容器

    docker stop <容器 ID、容器名稱>

  06)、重啓容器

    docker restart <容器 ID、容器名稱>

  07)、刪除容器

    方式1:普通刪除,容器在啓動狀態無法刪除

      docker rm <容器 ID、容器名稱>

    方式2:強制刪除,容器在啓動狀態會強制刪除並關閉

      docker rm -f <容器 ID、容器名稱>

    方式3:批量刪除

      docker rm 容器1 容器2

      docker rm ${docker ps -a -q}

  08)、複製容器文件到主機

    docker cp <容器id、容器名稱>:<容器文件路徑> <主機文件路徑>

    舉例:docker cp nginx-test:/usr/share/nginx/html/50x.html  /usr/local/nginx/html/50x.html

  09)、複製主機文件到容器

    docker cp <主機文件路徑> <容器id、容器名稱>:<容器文件路徑>

    舉例:docker cp /usr/local/nginx/html/50x.html  nginx-test:/usr/share/nginx/html/50x.html

  10)、獲取容器的元數據

    docker inspect <容器id、容器名稱>

2.3、目錄和文件掛載

 

 

2.4、docker commit

  docker commit 提交容器副本使其成為一個新的鏡像

  命令:

  docker  commit  -m="提交的描述信息"  -a="作者"  容器id  目標鏡像名:標籤名

  舉例:

  針對ubuntu容器新增vim功能

    apt-get update

    apt-get -y install vim

  提交新鏡像到本地:

  docker commit -m="添加vim功能" -a="hs" 51042a48b860 hs/myubuntu:1.1

2.4、docker私有倉庫(registry版)

1、下載鏡像私服鏡像Docker Registry
  docker pull registry
2、運行私有庫Registry,相當於本地有個Docker hub
  docker run --name registry -d -p 5000:5000 -v /usr/local/images-registry/:/tmp/registry --privileged=true registry

3、修改配置文件【/etc/docker/daemon.json】配置鏡像私有倉庫地址
  {

    "registry-mirrors": ["http://hub-mirror.c.163.com"],    # 加速鏡像設置

    "insecure-registries": ["10.0.24.11:5000"]  # 私有倉庫設置
  }
注意:docker 默認不允許http方式推送鏡像,通過配置“insecure-registries”取消這個限制;
修改配置注意重啓docker:systemctl restart docker

4、案例演示創建一個新鏡像,ubuntu安裝ifconfig命令
  docker run -it hs/myubuntu:1.1 /bin/bash

  apt-get update
  apt-get install net-tools

  docker commit 提交容器副本使其成為一個新的鏡像
  命令格式:docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名:標籤名

  容器外執行:
  docker commit -m="ifconfig cmd add" -a="hs" d161a30f15af hs/myubuntu:1.2

5、將新鏡像修改為符合私服規範的Tag
  docker tag hs/myubuntu:1.2 10.0.24.11:5000/hs/myubuntu:1.2

6、curl驗證私服庫有哪些鏡像
  curl -XGET http://10.0.24.11:5000/v2/_catalog

7、push推送到私服
  docker push 10.0.24.11:5000/hs/myubuntu:1.2

8、curl驗證私服庫有哪些鏡像2
  curl -XGET http://10.0.24.11:5000/v2/_catalog

9、pull到本地並運行
  docker pull 10.0.24.11:5000/hs/myubuntu:1.2
  docker run -it 鏡像id、鏡像名 /bin/bash

2.5、docker私有倉庫(harbor版)

 

Add a new 評論

Some HTML is okay.