一、安装docker
1.安装yum-utils
软件包(提供yum-config-manager
实用程序)并安装devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置yum 源
官方: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 阿里云: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 清华大学: yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
3.安装docker
yum install docker-ce
4.启动并开启开机启动
systemctl start docker
systemctl enable docker
二、遇到的问题
1.启动dockers时报 Job for docker.service failed because start of the service was attempted too often. See "systemctl s
解决:把daemon.json改为daemon.conf。使用mv命令修改后,docker启动正常。 mv /etc/docker/daemon.json /etc/docker/daemon.conf
然后重载配置文件 systemctl daemon-reload
一、https://www.cnblogs.com/linyufeng/p/12058595.html
https://www.cnblogs.com/panwenbin-logs/p/8007348.html
三、docker 打包到镜像并上传到私服
1.Dockerfile 文件编写
FROM openjdk:8
WORKDIR .
COPY userService-10003.jar demo.jar
COPY application-dev.yml application-dev.yml
COPY application-prod.yml application-prod.yml
ENV a dev
ENTRYPOINT exec java -jar demo.jar --spring.profiles.active=$a //启动时指定环境,通过启动容器时指定 -e a=dev
2.构建镜像
docker build -t eureka:v1 .
3.下载私服镜像并启动
docker pull registry //下载私服镜像 docker run -d -p 5000:5000 --name myregistry --restart=always registry //启动镜像
docker run -it -p 10003:10003 -e a="dev" user:v7 //指定环境为dev
4.私服配置
vim /etc/docker/daemon.json
{ # ustc的加速源 "registry-mirrors": ["https://nrbewqda.mirror.aliyuncs.com"], "insecure-registries":["192.168.31.181:5000"] //# 让docker信任192.168.31.181:5000registry私服地址,添加后docker 上传和下载都按照http 方式(默认https 会报错) }
$ sudo systemctl daemon-reload //重新加载配置文件 $ sudo systemctl restart docker
5.推送镜像到私服
docker push localshot:5000/eureka:v1
curl -XGET http://192.168.18.145:5000/v2/_catalog 查看私有仓库
curl -XGE http://10.10.100.216:5000/v2/dianbiao/tags/list 查看私服某个镜像各个版本信息
6.下载镜像到私服
同理配置docker 客户端,添加私服信任的ip地址,使得通过http访问
docker pull localhost:5000/eureka:v1
7.启动镜像
docker run -it -p 10000:10030 eureka:v1 //-it 按照交互模式启动可以看到日志打印,-p 前一个是对外暴露端口,后一个是容器内部端口 docker run -d -p 10000:10030 eureka:v1 //-d 按照后台模式启动,不会推出,-p 前一个是对外暴露端口,后一个是容器内部端口
总结
1.docker 构建好处在于能够将jar包运行的环境及jar 包一起打包构建,不同的环境只需要下载镜像就可以启动相同的服务,方便运维管理
2.docker 容器访问宿主机mysql 时 采用ip地址 172.17.0.1 访问 ,访问下设置mysql 权限可访问