po一下最近使用到的docker的命令用法,一直都记不住要经常现查 :(
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
- 要查看 Docker 容器的 IP 地址,可以使用
docker inspect
命令。该命令可以获取容器的详细信息,包括 IP 地址。
以下是一个示例命令:
1 | docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_id_or_name> |
在上面的命令中,需要将 <container_id_or_name>
替换为要查询的容器的 ID 或名称。命令执行后,它会输出容器的 IP 地址。
- 如果只想获取容器的 IP 地址,可以使用
--format
选项来指定输出格式。
以下是示例命令:
1 | docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_id_or_name> |
请确保在命令中替换 <container_id_or_name>
为实际的容器 ID 或名称。
- 如果想要一次性查看所有容器的 IP 地址,可以结合使用
docker ps
和docker 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,需要进行以下步骤:
在另一台机器上设置 Docker Registry: 首先,在另一台机器上启动一个 Docker Registry 服务。可以使用官方的 Docker Registry 镜像来运行一个私有的 Registry。可以使用以下命令启动 Registry 容器:
1
docker run -d -p 5000:5000 --restart=always --name registry registry:2
这将在端口 5000 上启动 Docker Registry 并持续运行。
配置 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 服务,使配置生效。标记镜像并推送到 Registry: 现在可以将本地的 Docker 镜像标记为另一台机器上的 Registry 地址,并推送到该 Registry。假设有一个名为
my-image
的镜像,可以使用以下命令来进行标记和推送:1
2docker tag my-image <registry-hostname>:<registry-port>/my-image
docker push <registry-hostname>:<registry-port>/my-image将
<registry-hostname>
替换为另一台机器的主机名或 IP 地址,<registry-port>
替换为 Registry 服务的端口。从 Registry 拉取镜像: 如果想从另一台机器上的 Registry 拉取镜像,可以使用以下命令:
1
docker pull <registry-hostname>:<registry-port>/my-image
同样,将
<registry-hostname>
替换为另一台机器的主机名或 IP 地址,<registry-port>
替换为 Registry 服务的端口。
通过以上步骤,就可以使用另一台机器上的 Docker Registry 进行镜像的推送和拉取操作。