一、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 目录下。