• docker创建镜像仓库及配置


    1. 私有仓库搭建
    • 获取镜像
    docker pull registry:2.4.1  
    # 或者如下获取,然后通过docker tag 重命名
    docker pull registry.cn-beijing.aliyuncs.com/google_registry/registry:2.4.1
    
    • 1
    • 2
    • 3
    • 启动私有仓库
    1. 先启动预热
    docker run -d -p 5000:5000 -v /home/registry:/var/lib/registry --name registry5000 registry:2.4.1
    
    • 1
    1. 复制config.yml文件到指定目录/home/registry/data
    docker cp 56f8f9aa2792:/etc/docker/registry/config.yml /home/registry/data
    
    56f8f9aa2792代表启动镜像的id
    
    • 1
    • 2
    • 3
    1. 修改config.yml文件,只增加 storage.delete.enable=true允许删除镜像
    $ cat config.yml
    version: 0.1
    log:
      fields:
        service: registry
    storage:
      delete:
        enabled: true
      cache:
        blobdescriptor: inmemory
      filesystem:
        rootdirectory: /var/lib/registry
    http:
      addr: :5000
      headers:
        X-Content-Type-Options: [nosniff]
    health:
      storagedriver:
        enabled: true
        interval: 10s
        threshold: 3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    1. 关闭并删除registry5000,重新启动
    docker stop registry5000
    docker rm registry5000
    
    docker run -d -p 5000:5000 -v /home/registry:/var/lib/registry  -v /home/registry/data/:/etc/docker/registry/ --name registry5000 registry:2.4.1
    
    • 1
    • 2
    • 3
    • 4
    1. 新建web页面查看仓库中的镜像
    • 拉取web镜像
    docker pull hyper/docker-registry-web
    # 或者如下获取,然后通过docker tag 重命名
    docker pull registry.cn-beijing.aliyuncs.com/google_registry/docker-registry-web:latest
    
    • 1
    • 2
    • 3
    • 启动web镜像
    docker run -d -p 8088:8080 --name registry-web --link registry5000 \
      -e REGISTRY_URL=http://10.10.10.144:5000/v2 \
      -e REGISTRY_TRUST_ANY_SSL=true \
      -e REGISTRY_BASIC_AUTH="YWRtaW46YWRtaW4=" \
      -e REGISTRY_NAME=10.10.10.144:5000 \
      hyper/docker-registry-web
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 修改仓库地址
    • 在/etc/docker/daemon.json
    vi /etc/docker/daemon.json
    内容:
    {
      "registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"],
    
      "insecure-registries":["10.10.10.144:5000"] 
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 加载并重启
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2
    1. 使用docker-maven-plugin插件推送到仓库中心并配置
    • pom.xml配置如下:
    
        com.spotify
        docker-maven-plugin
        1.2.2
         
            10.10.10.144:5000/wmms-dev/${project.artifactId}:${project.version}
            ${basedir}/src/main/docker
            
                
                    /
                    ${project.build.directory}
                    ${project.build.finalName}.jar
                
            
            reg-harbor
            http://10.10.10.144:5000
            http://10.10.10.144:2375
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 修改docker配置
    vi /usr/lib/systemd/system/docker.service
    
    
    • 1
    • 2
    • 修改内容如下:
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
    
    • 1
    • 2
    • 改为:
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    
    
    • 1
    • 2
    • 重启服务
    systemctl daemon-reload && systemctl restart docker
    
    
    • 1
    • 2
    • 开启2375端口
    firewall-cmd --zone=public --add-port=2375/tcp --permanent
    firewall-cmd --reload
    
    • 1
    • 2
    • 使用docker仓库
    1. 打包(jar)
    mvn clean,mvn package
    
    • 1
    1. 编写dockerfile
    FROM java:8
    ENV TimeZone=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
    ARG workdir=/app
    VOLUME ${workdir}
    WORKDIR ${workdir}
    ADD tcs-web.jar app.jar
    EXPOSE 8888
    ENTRYPOINT ["java","-Xms512m","-Xmx512m","-Xmn512m","-XX:+UseG1GC","-XX:MaxGCPauseMillis=200", "-jar","-Dfile.encoding=UTF8","-Dsun.jnu.encoding=UTF8","app.jar"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 打镜像
    docker build
    
    • 1
    1. 推送到仓库
    docker push
    
    • 1
    1. 通过web查看
    http://10.10.10.144:8088
    
    • 1
  • 相关阅读:
    04.Pandas查询数据
    Docker Stack部署应用详解+Tomcat项目部署详细实战
    vivado BD_PIN、BD_PORT
    k8s晋级之管理容器的计算资源
    Pycharm加载项目时异常,看不到自己的项目文件
    【Pytorch】深度学习之数据读取
    java服务器端开发-servlet:202、Servlet执行过程介绍:get请求与post请求、编码相关等
    霸榜SPC-1,成立才3年多,这家中国的存储初创公司凭什么?
    电量优化 - Hook 系统服务
    RabbitMQ进阶
  • 原文地址:https://blog.csdn.net/xiarufeng/article/details/127434870