Docker

微服务的模块非常多,部署起来非常麻烦,Docker可以解决这个问题

Docker的定义

DockerFile内容

最后的 . 表示dockerfile所在的目录

构建中

构建完成

成功访问

DockerCompose 基于Compose文件进行一个集群的构建

docker-compose命令中的参数 up 代表创建并且初始化容器

使用docker-compose up -d 一键构建并且部署容器

搭建图形化docker镜像仓库

使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:

version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=传智教育私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry

注意书写的时候要按照标准的yml格式

先重新tag,给需要推送的镜像起一个名字

然后就可以push了

直接push本地仓库失败,原因是docker认为http不安全

需要配置Docker信任地址

我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:

# 打开要修改的文件vi /etc/docker/daemon.json

# 添加内容:”insecure-registries”:[“http://192.168.150.101:8080"\]

# 重加载systemctl daemon-reload

# 重启docker systemctl restart docker

重启失败

报错

Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.

解决方案

docker的socket配置与daemon.json中的配置产生了冲突

去掉冲突即可

ExecStart=/usr/bin/dockerd -H fd:// 修改为 ExecStart=/usr/bin/dockerd

在查阅了很多解决方法后依然没有解决

最后发现是daemon.json文件中的配置出现了问题

配置之间没写 ,

删除之前的nginx

从私人仓库中拉取