docker相关操作

一、Ddocker常用命令

1.镜像操作命令
1. 查看本地镜像
docker images
2. 拉取镜像(从 Docker 镜像仓库(默认是 Docker Hub)拉取指定的镜像)
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull nginx:1.23.4
3. 删除本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
docker rmi nginx
4. 构建镜像
docker build [OPTIONS] PATH | URL | -
docker build -t my-nginx:1.0 .
其中,-t 用于指定镜像的标签,. 表示当前目录。
2.容器操作命令
1. 创建并启动容器
  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  docker run -d -p 8080:80 nginx
  -d:让容器在后台运行。
  -p:将容器内部的端口映射到主机的端口,格式为 主机端口:容器端口。
2. 查看运行中的容器
	docker ps
    docker ps -a
3. 停止容器
	docker stop [OPTIONS] CONTAINER [CONTAINER...]
    docker stop abc123
4. 启动已停止的容器
	docker start [OPTIONS] CONTAINER [CONTAINER...]
    docker start abc123
5. 重启容器
	docker restart [OPTIONS] CONTAINER [CONTAINER...]
    docker restart abc123
6. 删除容器
	docker rm [OPTIONS] CONTAINER [CONTAINER...]
    docker rm abc123
7. 进入容器
	docker exec -it [CONTAINER] [COMMAND]
    docker exec -it abc123 /bin/bash

二、Docker Registry搭建私有库

# 命令快粘

# 上传前标记镜像
docker tag nginx registry.home.tymas.cn:8000/nginx

# 上传标记镜像
docker push registry.home.tymas.cn:8000/nginx

# 从私有 Docker Registry 下载镜像
docker pull registry.home.tymas.cn:8000/nginx

# 查看私有 Docker Registry 中的镜像
curl https://registry.home.tymas.cn:8000/v2/_catalog

# 查看某个仓库中的所有镜像标签,可以使用以下命令:
https://registry.home.tymas.cn:8000/v2/jenkins/jenkins/tags/list

搭建私有 Docker Registry

1.使用 Docker 官方镜像快速搭建
docker run -d -p 5000:5000 --restart=always --name registry registry:2
  • -d:让容器在后台运行。
  • -p 5000:5000:将容器的 5000 端口映射到宿主机的 5000 端口。
  • –restart=always:设置容器在 Docker 服务启动时自动启动。
  • –name registry:为容器指定名称为 registry。
  • registry:2:使用的是 Docker 官方 Registry 版本 2 的镜像。
2. 配置 Docker 客户端信任私有 Registry(针对 HTTP 访问)

默认情况下,Docker 只允许通过 HTTPS 访问 Registry。如果你的私有 Registry 使用的是 HTTP 协议,需要在 Docker 客户端进行配置以信任该 Registry。
在 /etc/docker/daemon.json 文件中添加以下内容(如果文件不存在则创建)

{
    "insecure-registries": ["your-registry-ip:5000"]
}

将 your-registry-ip 替换为你私有 Registry 所在服务器的 IP 地址。
配置完成后,重启 Docker 服务:

sudo systemctl restart docker

上传镜像到私有 Docker Registry

1. 标记本地镜像

在上传镜像之前,需要给本地镜像添加私有 Registry 的标签。假设你有一个名为 nginx 的本地镜像,要将其上传到私有 Registry:

docker tag nginx your-registry-ip:5000/nginx

这里将 nginx 镜像标记为 your-registry-ip:5000/nginx,表示该镜像将上传到私有 Registry 的 nginx 仓库。

2. 上传镜像

使用 docker push 命令将标记后的镜像上传到私有 Registry:

docker push your-registry-ip:5000/nginx

从私有 Docker Registry 下载镜像

使用 docker pull 命令从私有 Registry 下载镜像:

docker pull your-registry-ip:5000/nginx

查看私有 Docker Registry 中的镜像

可以通过 HTTP 请求查看私有 Registry 中存储的镜像。例如,使用 curl 命令查看所有仓库名称:

curl http://your-registry-ip:5000/v2/_catalog

若要查看某个仓库中的所有镜像标签,可以使用以下命令:

curl http://your-registry-ip:5000/v2/nginx/tags/list

管理私有 Docker Registry

1. 停止和删除 Registry 容器

如果需要停止并删除正在运行的 Registry 容器,可以使用以下命令:

docker stop registry
docker rm registry

2. 持久化存储

为了避免容器删除后镜像数据丢失,可以将 Registry 的数据存储在宿主机的指定目录中。在启动 Registry 容器时,使用 -v 参数进行挂载:

docker run -d -p 5000:5000 --restart=always --name registry -v /myregistry:/var/lib/registry registry:2

这里将宿主机的 /myregistry 目录挂载到容器的 /var/lib/registry 目录,Registry 的镜像数据将存储在 /myregistry 目录下。