安装
docker pull registry
docker run -tid --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry registry
#运行该镜像,各个选项含义如下:
# -tid:以后台持久运行,并分配一个可交互的为终端
# --name registry :给容器定义一个名字
# --restart=always:该容器可以随着docker服务的启动而启动
# -p:将容器的端口映射到宿主机,冒号前面是宿主机的端口,冒号后面是容器的端口,registry的默认端口是5000
# -v:将宿主机的目录挂载到容器中,冒号前面是宿主机的目录,冒号后面是容器中的目录
配置 (每台都需要配置)
vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 192.168.100.41:5000'
vi /etc/docker/daemon.json
{
"insecure-registries":["192.168.100.41:5000"]
}
#重启docker服务
systemctl restart docker
推送到私有仓库
# 下载nginx
docker pull nginx
docker tag nginx 192.168.100.41:5000/nginx
docker push 192.168.100.41:5000/nginx
#查看私有仓库
curl 192.168.100.41:5000/v2/_catalog
拉取
docker pull 192.168.100.41:5000/nginx
jar 打包
准备文件
## 创建目录
mkdir /vuser/docker/app
cd /vuser/docker/app
## 将项目打包上传到目录
/vuser/docker/app/app.jar
## 配置文件
/vuser/docker/app/application.yml
构建 Dockerfile
## 在目录下创建 Dockerfile 文件
vi Dockerfile
FROM openjdk:8-jre
# 将 jar 包添加到容器中
COPY app.jar /home/app.jar
#配置文件可以不上传
COPY application.properties /home/application.properties
WORKDIR /home
# 映射端口
EXPOSE 5001
ENTRYPOINT ["java" , "-jar" , "app.jar"]
构建镜像
docker build -t app:1.0 .
## 私有仓库打包
docker build -t 192.168.100.41:5000/app .
## 推送
docker push 192.168.100.41:5000/app
## 批量删除
docker rmi `docker images | awk '/192.168/{ print $3 }'`
## 拉取
docker push 192.168.100.41:5000/app:latest
#查看私有仓库
curl 192.168.100.41:5000/v2/_catalog
# K8s 支持
## 配置外网域名,配置ssl,配置nginx 转发
curl 域名/v2/_catalog
## k8s pod 拉取
域名:app:latest
构建启动器
docker run --name app -p 5001:5001 -v /vuser/application.yml:/home/application.yml -v /vuser/log:/home/log -d app:1.0
# -p 端口
# -v /home/application.yml 配置文件
# -v /home/log 日志文件目录
# -d app:1.0 后台启动模式及使用的镜像
认证仓库
## 创建登录用户名密码
yum install -y httpd-tools
mkdir /web/auth
htpasswd -Bc auth/htpasswd admin
#查看
cat auth/htpasswd
## 带登录授权文件启动服务
docker run -tid --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry -v /web/auth:/auth -e REGISTRY_AUTH=htpasswd -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
## 登录仓库 - 登录后可以进行 其它操作
docker login 192.168.100.41:5000
## Pod 使用配置
kubectl create secret docker-registry 名称 -n 命名空间 --docker-server=服务器 --docker-username='用户' --docker-password='密码'
kubectl get secret -n 命名空间