1. Docker安装
1.1 外网安装
step1:通过阿里云镜像下载安装包:
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.1.ce-1.el7.centos.x86_64.rp
step2:安装
yum install docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm
step3:启动服务
systemctl start docker chkconfig docker on
step4:配置阿里云加速器
- https://cr.console.aliyun.com/cn-shenzhen/mirrors
通过修改daemon
配置文件/etc/docker/daemon.json
来使用加速器:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["加速器地址"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
1.2 内网安装
step1:官网下载docker的本地安装包
step2:解压安装包
tar -xzvf /path/to/<FILE>.tgz
step3:复制docker命令到系统目录里
sudo cp docker/* /usr/bin/
step4:启动docker进程
sudo dockerd &
2. 构建项目镜像(免Dockerfile文件)
step1:在工程引入maven
插件docker-maven-plugin
:
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <imageTags> <imageTag>${project.version}</imageTag> <imageTag>latest</imageTag> </imageTags> <forceTags>true</forceTags> <baseImage>${docker.baseImage}</baseImage> <volumes>${docker.volumes}</volumes> <env> <JAVA_OPTS>${docker.java.opts}</JAVA_OPTS> </env> <entryPoint>["java ","$JAVA_OPTS ${docker.java.security.egd} ","-jar ","/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
configuration属性解释:
- imageName:为镜像名
- imageTags:配置镜像tag,这里指定了两个tag(最新的版本号和latest)
- forceTags:强制在每次新的构建上覆盖镜像tags
- baseImage:基础镜像
- volumes:配置挂载目录
- env:配置环境变量
- entryPoint:配置执行命令
- resources:配置目标jar包的位置
step2:在父工程的properties
下增加以下参数
<docker.baseImage>openjdk:8-jre-alpine</docker.baseImage> <docker.volumes>/tmp</docker.volumes> <docker.image.prefix>hub.zlt.com:8080/microservices-platform</docker.image.prefix> <docker.java.security.egd>-Djava.security.egd=file:/dev/./urandom</docker.java.security.egd> <docker.java.opts>-Xms128m -Xmx128m</docker.java.opts>
参数解释:
- docker.baseImage:为jre8的基础镜像
- docker.volumes:是在容器里挂载的目录
- docker.image.prefix:仓库地址/项目名
- docker.java.security.egd:加快随机数产生过程
- docker.java.opts:设置JVM启动参数
3. 运行构建
step1:先通过docker login
登录私有仓库,登录之后会在服务器的~/.docker/config.json
文件里缓存登录信息,以后都不需要再登录了
docker login hub.zlt.com:8080
step2:执行maven指令
mvn docker:build