docker创建镜像仓库及配置

9 篇文章 0 订阅
6 篇文章 0 订阅
  1. 私有仓库搭建
  • 获取镜像
docker pull registry:2.4.1  
# 或者如下获取,然后通过docker tag 重命名
docker pull registry.cn-beijing.aliyuncs.com/google_registry/registry:2.4.1
  • 启动私有仓库
  1. 先启动预热
docker run -d -p 5000:5000 -v /home/registry:/var/lib/registry --name registry5000 registry:2.4.1
  1. 复制config.yml文件到指定目录/home/registry/data
docker cp 56f8f9aa2792:/etc/docker/registry/config.yml /home/registry/data

56f8f9aa2792代表启动镜像的id
  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. 关闭并删除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. 新建web页面查看仓库中的镜像
  • 拉取web镜像
docker pull hyper/docker-registry-web
# 或者如下获取,然后通过docker tag 重命名
docker pull registry.cn-beijing.aliyuncs.com/google_registry/docker-registry-web:latest
  • 启动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. 修改仓库地址
  • 在/etc/docker/daemon.json
vi /etc/docker/daemon.json
内容:
{
  "registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"],

  "insecure-registries":["10.10.10.144:5000"] 
}

  • 加载并重启
systemctl daemon-reload
systemctl restart docker
  1. 使用docker-maven-plugin插件推送到仓库中心并配置
  • pom.xml配置如下:
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.2</version>
     <configuration>
        <imageName>10.10.10.144:5000/wmms-dev/${project.artifactId}:${project.version}</imageName>
        <dockerDirectory>${basedir}/src/main/docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
        <serverId>reg-harbor</serverId>
        <registryUrl>http://10.10.10.144:5000</registryUrl>
        <dockerHost>http://10.10.10.144:2375</dockerHost>
    </configuration>
</plugin>
  • 修改docker配置
vi /usr/lib/systemd/system/docker.service

  • 修改内容如下:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

  • 改为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

  • 重启服务
systemctl daemon-reload && systemctl restart docker

  • 开启2375端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
  • 使用docker仓库
  1. 打包(jar)
mvn clean,mvn package
  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. 打镜像
docker build
  1. 推送到仓库
docker push
  1. 通过web查看
http://10.10.10.144:8088
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如风之夏

感谢,你的鼓励是我前进的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值