0%

docker命令记录

po一下最近使用到的docker的命令用法,一直都记不住要经常现查 :(

1. 删除镜像

  1. 要按照镜像名称删除 Docker 中的镜像,可以使用 docker rmi 命令。

命令格式如下:

1
docker rmi <image_name>

其中 <image_name> 是要删除的镜像的名称或镜像 ID。

docker删除构建失败的镜像(批量删除没有名字的镜像)

1
docker rmi $(docker images -f "dangling=true" -q)

2. 删除container

删除所有不再运行的container

1
docker rm $(docker ps -aq)

3. 以某一镜像构建容器

1
docker run -p 5000:5000 --name my_container -d your_image_name

在运行容器之后,可以使用 docker ps 命令来查看运行的容器。

1
docker ps

4. 进入容器

如果需要进入容器内部进行交互,可以使用 docker exec 命令。

1
docker exec -it my_container /bin/sh

5. 查看容器

使用 docker ps 命令来查看运行的容器。

1
docker ps

显示所有包括已经停止的容器

1
docker ps -a

6. 查看docker容器对应的ip

  1. 要查看 Docker 容器的 IP 地址,可以使用 docker inspect 命令。该命令可以获取容器的详细信息,包括 IP 地址。

以下是一个示例命令:

1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_id_or_name>

在上面的命令中,需要将 <container_id_or_name> 替换为要查询的容器的 ID 或名称。命令执行后,它会输出容器的 IP 地址。

  1. 如果只想获取容器的 IP 地址,可以使用 --format 选项来指定输出格式。

以下是示例命令:

1
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_id_or_name>

请确保在命令中替换 <container_id_or_name> 为实际的容器 ID 或名称。

  1. 如果想要一次性查看所有容器的 IP 地址,可以结合使用 docker psdocker inspect 命令。

以下是一个示例命令:

1
docker ps -q | xargs -n 1 docker inspect -f '{{ .Id }} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

该命令会列出所有容器的 ID 和对应的 IP 地址。

请注意,上述命令只能查看正在运行的容器的 IP 地址。如果容器已经停止,它将不会显示相应的 IP 地址

7. 使用另外一台机器上的docker registry

要使用另一台机器上的 Docker Registry,需要进行以下步骤:

  1. 在另一台机器上设置 Docker Registry: 首先,在另一台机器上启动一个 Docker Registry 服务。可以使用官方的 Docker Registry 镜像来运行一个私有的 Registry。可以使用以下命令启动 Registry 容器:

    1
    docker run -d -p 5000:5000 --restart=always --name registry registry:2

    这将在端口 5000 上启动 Docker Registry 并持续运行。

  2. 配置 Docker 客户端: 需要在本地的 Docker 客户端上配置它来使用另一台机器上的 Docker Registry。将 Docker 客户端配置为信任另一台机器上的 Registry。为此,可以在 Docker 客户端上创建一个配置文件 daemon.json(如果不存在),并添加以下内容:

    1
    2
    3
    {
    "insecure-registries": ["<registry-hostname>:<registry-port>"]
    }

    其中 <registry-hostname> 是另一台机器的主机名或 IP 地址,<registry-port> 是 Registry 服务的端口(默认为 5000)。保存配置文件后,重启 Docker 服务,使配置生效。

  3. 标记镜像并推送到 Registry: 现在可以将本地的 Docker 镜像标记为另一台机器上的 Registry 地址,并推送到该 Registry。假设有一个名为 my-image 的镜像,可以使用以下命令来进行标记和推送:

    1
    2
    docker tag my-image <registry-hostname>:<registry-port>/my-image
    docker push <registry-hostname>:<registry-port>/my-image

    <registry-hostname> 替换为另一台机器的主机名或 IP 地址,<registry-port> 替换为 Registry 服务的端口。

  4. 从 Registry 拉取镜像: 如果想从另一台机器上的 Registry 拉取镜像,可以使用以下命令:

    1
    docker pull <registry-hostname>:<registry-port>/my-image

    同样,将 <registry-hostname> 替换为另一台机器的主机名或 IP 地址,<registry-port> 替换为 Registry 服务的端口。

通过以上步骤,就可以使用另一台机器上的 Docker Registry 进行镜像的推送和拉取操作。