开发环境
- 开发环境操作系统:Windows 10
- IntelliJ IDEA: 2019.2.4 (Ultimate Edition)
- Docker服务所在环境:Ubuntu 18.04.4 Server
- Docker:19.03.8(Community)
- Windows版Docker Compose:1.25.4
1. Docker开启远程访问
参照这篇文章Docker开放远程安全访问(开启2376端口和CA认证)
2. 安装IDEA的Docker插件
在File --> Settings --> Plugins 在搜索框中输入Docker,搜索并点击安装。安装完成后重启IDEA。
3. IDEA中建立和Docker的连接
在File–> Settings–>Build,Execution,Deployment中找到Docker
新建一个Docker实例,连接成功后底部会显示Connection successful。
设置完成后,回到IDEA主界面,可以看到下面多出来一个Docker窗口或者在Services窗口中出现Docker。选中并连接Docker,连接上后显示Containers和Images就是我们现在Docker中已经有的容器和镜像。
4. 使用Dockerfile构建镜像
在项目的根目录下创建Dockerfile文件,内容如下
FROM java:openjdk-8-jdk-alpine
VOLUME /tmp
ADD target/*.jar app.jar
#设置alpine系统时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
EXPOSE 8081
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
在Run/Debug Configurations中添加一个新配置,选择Docker->Dockerfile,输入配置名、容器名、端口绑定等。
在配置启动项中找到Before launch:Activate tool window,在这里新增一个Run Maven Gold
在Command line中添加命令 clean package
这么做的目的是可以在代码修改之后点击运行时自动打包并构建Docker镜像,如果不配置的话,修改后的代码并不会被打包到Docker镜像中。
点击运行,我们会发现项目已经启动成功了,在右侧还可以查看日志等信息,非常方便。
5. 使用Docker Compose构建镜像
如果我们的项目需要连接数据库或者缓存,那么可以使用Docker Compose把项目和数据库同时构建。
在项目根目录下创建docker-compose.yml文件,内容如下:
version: '3'
services:
hello-spring-cloud-alibaba-nacos-provider:
restart: always
build: .
image: hello-spring-cloud-alibaba-nacos-provider
container_name: hello-spring-cloud-alibaba-nacos-provider
ports:
- "8081:8081"
redis:
restart: always
image: redis
container_name: redis
volumes:
- ./redis/data/:/data/
在Run/Debug Configurations中添加一个新配置,选择Docker->Docker-compose,输入配置名称并选择刚才创建的docker-compose.yml文件,同样在Before launch中新增一个Run Maven Gold,命令为clean package
。
点击运行
运行成功,这里出现了新的Docker Compose容器
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。