前提
- docker已装好.
开始表演
- 开放docker对应端口
开启远程访问,修改docker服务文件,在linux上执行下面
vim /lib/systemd/system/docker.service
修改ExecStart这行(开启2375端口让外部访问docker)
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
2. 重新加载配置文件
systemctl daemon-reload
重启服务
systemctl restart docker.service
查看端口是否开启
netstat -nlpt 如果没有netstat命令:yum install net-tools
直接curl看是否生效
curl http://127.0.0.1:2375/info
- 查看是否开启2375防火墙
查看进程
#netstat -tulp
Centos7没有netstat,所以要先下载。
#yum install net-tools
防火墙开放2375端口号
#firewall-cmd --zone=public --add-port=2375/tcp --permanent
重启防火墙
#firewall-cmd --reload
IDEA设置
- 首先查看idea是否有安装docker插件,如果没有在插件里安装即可
- 镜像配置
- 这个时候,你可以在service中看到docker的信息,点击连接
这个时候IDEA下方会有docker按钮,进入点击连接Connect
Images:镜像
可以通过 create Contains 创建容器
Container name 容器名称
Run options 添加其他一些命令(如-p 8080:8080)
通过Contained preview 查看创建容器的命令
Contains:容器
可以操作容器
关键
实现IDEA到服务器部署
1.在IDEA中开发代码
2.代码打jar包
3.部署到linux上
4.编写Dockerfile
5.构建镜像
6.运行容器
自动生成镜像并推送到仓库maven插件
<properties>
<docker.image.prefix>tao</docker.image.prefix>
</properties>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration> <!--相当于创建Dockerfile-->
<!--镜像名称 (tao/test) project.artifactId表示项目名称-->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!--指定标签Tag 镜像版本-->
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<!--基础镜像jdk 1.8-->
<baseImage>java</baseImage>
<!--制作者的信息-->
<maintainer>hetao</maintainer>
<!--切换到工作目录-->
<workdir>/ROOT</workdir>
<!--<cmd>["java","-version"]</cmd>-->
<!--project.build.finalName会取springboot打包后target目录下的jar名称-->
<entryPoint>["java","-jar","${project.build.finalName}.jar"]</entryPoint>
<!--指定Dockerfile路径
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
-->
<!--指定远程docker api地址 如果使用的钥匙连接加s->https://ip:2375-->
<dockerHost>http://ip:2375</dockerHost>
<!--复制jar包到docker容器指定的目录配置-->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件,${project.build.finalName}.jar表示打包后的jar文件-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
这里相当于
FROM java
MAINTAINER "hetao"
WORKDIR /ROOT
ADD /ROOT/test-docker-01-0.0.1-SNAPSHOT.jar /ROOT/
ENTRYPOINT ["java","-jar","test-docker-01-0.0.1-SNAPSHOT.jar"]
<!--CMD ["java","-version"]-->
<!--通过maven 直接打包完成(放</configuration>后)-->
<executions>
<!--执行 maven package时 执行:maven clean package docker:build-->
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
评论区