这个内容就比较简单了。
之前我们的流程是直接发送 docker-compose命令去编排生成,运行。
在这一节,我们的目的是docker build 生产镜像,然后推送到docker 镜像服务器,然后下一节我们在目的服务器运行sh 文件抓取镜像并且运行。

在构建里面操作。ssh exec command。
cd /usr/local/docker/jenkins_docker/data/workspace/mytest
docker build -t mytest:$tag .
这里我们生成了一个镜像。至于dockerfile 文件和前面保持一致,这里我们删除掉docker-compose 文件了
docker login -u admin -p Harbor12345 192.168.0.51:80
docker tag mytest:$tag 192.168.0.51:80/repo/mytest:$tag
docker push 192.168.0.51:80/repo/mytest:$tag
这里我们登陆harbor 服务器,然后把我们的镜像推送到harbor 服务器。
这里有个需要注意的地方,我们拉取的镜像是要jenkins 容器里面操作的,所以我们需要jenkins 容器能够使用宿主机器的docker,这个地方很重要:
cd /var/run 下面的这个文件 Docker.sock ,把它修改为root :root 并且读写权限。
chown root:root docker.sock
Chmod o+rw docker.sock
修改jenkins 的 docker-compose.yml 文件
加3个 文件映射
- /var/run/docker.sock:/var/run/docker.sock
-/usr/bin/docker:/usr/bin/docker
-/etc/docker/daemon.json:/etc/docker/daemon.json
该博客介绍了如何使用Docker构建镜像,并将其推送到Harbor镜像服务器。首先,通过`docker build`命令生成镜像,接着使用`docker login`和`docker tag`进行身份验证和标记镜像,最后通过`docker push`将镜像推送到Harbor。为了使 Jenkins 容器能访问宿主机的 Docker,需要设置文件映射,确保Docker.sock的权限和路径正确。
576

被折叠的 条评论
为什么被折叠?



