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.rpm
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