参考:
https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/
dockerfile https://xinchen.blog.csdn.net/article/details/100049996
docker image https://xinchen.blog.csdn.net/article/details/100062008
docker-compose https://xinchen.blog.csdn.net/article/details/100064934
如果不是本机的docker,则需要开启远程访问
开启远程访问
要注意,这有安全问题的
- 编辑文件:/lib/systemd/system/docker.service
➜ ~ vim /lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 注释掉 在前面添加 -H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
- 重启docker
➜ ~ systemctl daemon-reload && systemctl restart docker
- 验证是否正常运行
➜ ~ docker -H tcp://ali:2375 images # ali是本机在hosts 文件设置的映射
安装插件
搜索docker 安装即可
连接远程Docker服务
编写DockerFile部署springboot项目
在pom.xml所在目录,编写Dockerfile
# Docker image for springboot application
### 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER BolingCavalry <zq2599@gmail.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
COPY target/*.jar app.jar
#启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]
#暴露8080端口
EXPOSE 8080
添加运行配置
运行
可以看到成功被部署了
由于刚刚端口没有设置,连接上服务器看看,自动暴露的端口是啥
上图可以看到 端口是32768,curl查看结果,部署成功
docker image
该插件的作用相对简单:用指定的镜像运行容器;
从图里 命令预览
可以看出,docker image的作用只是配置image运行而已
运行结果,就是跟直接命令行输入是一样的。
这里80端口本来就在使用了,所以才报错
docker-compose
如图,在idea run Configuration中还有一个没有使用
docker-compose的作用就是编排多个容器
编写docker-compose文件 然后将其运行