架构—springboot项目部署docker
安装docker
docker守护进程端口暴漏出去
修改docker配置文件
vi /lib/systemd/system/docker.service
修改启动命令
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2379 -H unix://var/run/docker.sock
重启docker
systemctl daemon-reload
service docker restart
本地验证
curl http://localhost:2375/version
IDEA安装Docker插件
如果没有docker选项 需要安装docker插件
pom文件
引入docker插件(镜像名一定是小写!!!)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerHost>http://114.55.127.26:2379</dockerHost>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
Dockerfile文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-0.0.1-SNAPSHOT.jar docker-0.0.1-SNAPSHOT.jar
RUN sh -c 'touch /docker-0.0.1-SNAPSHOT.jar'
ENV JAVA_OPTS=""
EXPOSE 8083
#指定执行启动spring boot小项目 ENTRYPOINT 为容器启动后执行的命令
ENTRYPOINT ["java","-jar","/docker-0.0.1-SNAPSHOT.jar"]
FROM 是基础镜像
VOLUME 挂载到哪个目录下
ADD 本地的文件 传到镜像中
RUN 指定镜像构建时所要执行的命令
ENTRYPOINT 容器启动后 执行的命令
按照本示例Dockerfile文件应该放到src/main/docker项目目录下
运行命令,一键生成镜像
先install 然后运行方式如下图
通过镜像生成容器
先查看镜像是否在linux本地
docker image -ls
通过“docker/docker”镜像生成容器
docker run -d -p 8083:8083 docker/docker
查看容器是否运行
docker ps -a