小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
整合步骤 (maven + springboot)
- 在maven的pom.xml文件中增加配置
1 | xml复制代码 <properties> |
配置讲解
Spotify 的 docker-maven-plugin 插件是用maven插件方式构建docker镜像的。project.build.finalName∗∗产出物名称,缺省为∗∗{project.build.finalName}** 产出物名称,缺省为**project.build.finalName∗∗产出物名称,缺省为∗∗{project.artifactId}-${project.version}
- 打包SpringCloud镜像并上传私有仓库并部署
什么是dockerFile
什么是Dockerfile : 由一系列命令和参数构成的脚本,这些命令应用于基础镜像, 最终创建一个新的镜像
创建 Dockerfile 添加内容 (默认是根目录, 可以修改为src/main/docker/Dockerfile,如果修则需要制定路径)
下面是dockfile的内容:
1 | dockerfile复制代码FROM openjdk:8-jdk-alpine |
参数讲解:
- FROM
: 需要一个基础镜像,可以是公共的或者是私有的, 后续构建会基于此镜像,如果同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令
- VOLUME 配置一个具有持久化功能的目录,主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
- ARG:设置编译镜像时加入的参数, ENV 是设置容器的环境变量
- COPY : 只支持将本地文件复制到容器 ,还有个ADD更强大但复杂点
- ENTRYPOINT:容器启动时执行的命令
- EXPOSE 8080:暴露镜像端口
- 构建镜像
1 | ini复制代码mvn install dockerfile:build |
补充: 如何在阿里云上的linux如何打包上去
- 在maven 安装目录的setting文件中加入配置
1 | xml复制代码<server> |
- 修改阿里云centeros7 Docker配置开放远程访问
1 | bash复制代码vi /usr/lib/systemd/system/docker.service |
ExecStart这一行后面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
最终效果:
1 | ruby复制代码ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock |
- 重启
1 | sql复制代码systemctl daemon-reload |
- 服务器验证是否开始监听
1 | bash复制代码netstat -anp|grep 2375 |
- windows系统环境变量中新建DOCKER_HOST, 值为 tcp://[修改成你的远程服务器端口号]:2375
- 打标签
1 | bash复制代码docker tag a1b9fc71720d registry.cn-shenzhen.aliyuncs.com/xd/xd_images:docker-demo-v201808 |
- 推送到镜像仓库
1 | bash复制代码docker push registry.cn-shenzhen.aliyuncs.com/xd/xd_images:docker-demo-v201808 |
- 应用服务器拉取镜像
1 | bash复制代码docker pull registry.cn-shenzhen.aliyuncs.com/xd/xd_images:docker-demo-v201808 |
- 启动
1 | css复制代码docker run -d --name xd_docker_demo1 -p 8099:8080 a1b9fc71720d |
- 查看启动日志
1 | linux复制代码docker logs -f containerid |
- 访问
1 | arduino复制代码http://[IP]:8099/find/user |
docker整合注册中心
- 新增maven插件
1 | xml复制代码<properties> |
- 新建Dockerfile
1 | css复制代码FROM openjdk:8-jdk-alpine |
- 打包
1 | ini复制代码mvn install dockerfile:build |
- 推送阿里云镜像仓库
阿里云镜像仓库:dev.aliyun.com/search.html
1 | bash复制代码docker tag 062d2ddf272a registry.cn-shenzhen.aliyuncs.com/xd/xd_images:eureka-v20180825 |
5、查看日志
1 | 复制代码docker logs -f containerid |
- 运行
docker run -d --name docker-eureka-server -p 8761:8761 e7f687f101a7
Docker Redis安装
- 搜索镜像
1 | sql复制代码docker search redis |
- 拉取
1 | bash复制代码docker pull docker.io/redis |
- 启动
1 | arduino复制代码docker run --name "xd_redis" -p 6379:6379 -d 4e8db158f18d |
参考:
1 | bash复制代码docker run --name "xd_redis" -p 6379:6379 -d 4e8db158f18d --requirepass "123456" -v $PWD/data:/data |
- 访问redis容器里面,进行操作
1 | bash复制代码docker exec -it 295058d2b92e redis-cli |
本文转载自: 掘金