安装

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 命名空间
©2019 Somore 豫ICP备19009951号 sqlixiaoli@163.com