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