docker部署之私服管理

一、简介

 docker私服是存放镜像的本地仓库,类似于docker hub。不过私服是本地的仓库,方便自己公司部署管理由微服务打包成的docker镜像。
 话不多说,通过一个例子,教你快速搭建docker私服。

二、registry搭建

$ systemctl start docker
  • 拉取registry镜像
$ docker pull registry

  • 查看已下载的镜像
$ docker images

  • 启动registry
$ docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry docker.io/registry

-d 表示后台运行;
-v 表示挂载目录,将容器内部的/var/lib/registry挂载到宿主机的/opt/registry;
–name 表示取别名;
-p 表示指定端口,第一个参数是外部访问端口,第二个是映射到内部的端口;
docker.io/registry表示镜像名称,如果要指定版本(TAG),需要docker.io/registry:1.0,(假设1.0为版本号)。

  • 查看正在运行的容器
$ docker ps

  • 浏览器中访问
    虚拟机ip:5000/v2/_catalog,可以看到私服仓库的信息

三、测试私服仓库

  • 将加速镜像改为私服地址
$ vi /etc/docker/daemon.json

修改内容:

{
    "registry-mirrors":
    [
        "http://172.20.10.6:5000",
        "http://hub-mirror.c.163.com",
        "https://registry.docker-cn.com"
    ],
    "insecure-registries": ["172.20.10.6:5000"]
}

insecure-registries 表示支持http上传的列表,否则仅支持https上传。

  • 拉取镜像到本地
$ docker pull docker.io/hello-world

  • 打标签
$ docker tag docker.io/hello-world 172.20.10.6:5000/hello-world

172.20.10.6:5000为私服地址。

  • 将本地镜像上传到私服
$ docker push 172.20.10.6:5000/hello-world

  • 查看私服

    或使用curl测试:
$ curl -XGET http://172.20.10.6:5000/v2/_catalog

四、SpringBoot项目上传私服

编辑/usr/lib/systemd/system/docker.service文件:

$ vi /usr/lib/systemd/system/docker.service

添加:

-H tcp://0.0.0.0:2375 \
-H unix://var/run/docker.sock \

目的是为了方便远程使用docker-maven-plugin插件上传镜像到私服。

重启docker:

$ systemctl daemon-reload
$ systemctl restart docker

docker-maven-plugin配置:

<plugin>
	<groupId>io.fabric8</groupId>
	<artifactId>docker-maven-plugin</artifactId>
	<version>${docker.plugin.version}</version>
	<configuration>
		<!-- Docker Remote Api-->
		<dockerHost>http://172.20.10.6:2375</dockerHost>
		<!-- Docker 镜像私服-->
		<registry>172.20.10.6:5000</registry>
		<images>
			<image>
				<name>172.20.10.6:5000/library/${project.name}:${project.version}</name>
				<build>
					<dockerFile>${project.basedir}/Dockerfile</dockerFile>
				</build>
			</image>
		</images>
	</configuration>
</plugin>

${project.basedir}是项目根目录。

Dockefile配置:

FROM openjdk:8-jdk-alpine

MAINTAINER wangiegie@gmail.com

ENV TZ=Asia/Shanghai

RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /pig-register

WORKDIR /pig-register

EXPOSE 8848

ADD ./target/pig-register.jar ./

CMD sleep 30;java -Djava.security.egd=file:/dev/./urandom -jar pig-register.jar

此处不做过多Dockerfile配置说明。
依次执行:
maven clean -> maven install -> docker build -> docker push


查看私服镜像仓库:

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值