1、Docker开启远程访问
[root@izwz9eftauv7x69f5jvi96z docker]# vim /lib/systemd/system/docker.service
#修改ExecStart这行
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
别人的截图:
我的截图:
#重新加载配置文件
[root@izwz9eftauv7x69f5jvi96z docker]# systemctl daemon-reload
#重启服务
[root@izwz9eftauv7x69f5jvi96z docker]# systemctl restart docker.service
#查看端口是否开启
[root@izwz9eftauv7x69f5jvi96z docker]# netstat -nlpt
#直接curl看是否生效
[root@izwz9eftauv7x69f5jvi96z docker]# curl http://127.0.0.1:2375/info
在浏览器输入地址:http://ip:2375/info :(则开启成功)
2、Intellij IDEA安装Docker插件
打开Idea,从File->Settings->Plugins->Install JetBrains plugin进入插件安装界面,在搜索框中输入docker,可以看到Docker integration,点击右边的Install按钮进行安装。安装后重启Idea。
重启后配置docker,连接到远程docker服务。从File->Settings->Build,Execution,Deployment->Docker打开配置界面。
3、spring boot服务Docker部署
3.1新建一个Spring boot工程,编写测试接口
3.2修改pom文件,添加properties,添加plugin
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>bozai</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory></dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
我的:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>zhangqiang/${project.artifactId}</imageName>
<dockerDirectory></dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
3.3配置Dockerfile文件:在工程根目录下新建Dockerfile文件。
别人的:(EXPOSE 8080 这个8080 尽量保持与项目里面的端口一致,不一致的时候我的好像出过问题)
FROM java:8
VOLUME /tmp
COPY target/demo-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c "touch /demo.jar"
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]
我的:
FROM java:8
VOLUME /tmp
COPY target/appserver-0.0.1-SNAPSHOT.jar lhyl.jar
RUN bash -c "touch /lhyl.jar"
EXPOSE 8066
ENTRYPOINT ["java","-jar","lhyl.jar"]
4、创建Docker镜像
将工程打包,在idea Terminal中执行mvn clean package命令进行编译打包,打包后会在target目录下生成jar包。生成jar包后,可以在本地启动服务,进行测试。测试后,配置docker镜像制件命令。从Run->Edit Configrations进入配置界面。
点击Docker,再点击+号,添加一个docker命令,输入Name,选择Server,选择Dockerfile文件,输入镜像tag,完成配置。
正在打包。。。。。
查看docker运行状态:已经有了镜像,并正在运行(镜像中有java8,所以文件有点大1.01GB)
浏览器访问:ip:8291端口
后记:中间会出现的问题:
1.一定要关闭防火墙
2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop
地址:https://blog.csdn.net/hunheidaode/article/details/103936471
2. 会出现的问题2
参考:
https://blog.csdn.net/bobozai86/article/details/88875784
https://my.oschina.net/wuweixiang/blog/2874064
https://blog.csdn.net/sealir/article/details/81200662
3.会出现的问题3
docker-runc not installed on system 问题
问题描述:
docker运行镜像的时候,报错如下:
1 2 3 |
|
问题解决:
经过一番排查,如下解决方案有用:
1 2 |
|
以上,问题解决。https://www.cnblogs.com/cxbhakim/p/8862758.html
4.会出现的问题4
exec: "docker-proxy": executable file not found in $PATH
在执行 docker run 操作的时候,一直报如下错误:
|
可知,启动需要执行 /usr/bin/docker-proxy
查看下 docker-proxy 的位置:
1 2 |
|
创建一条软连接到 /usr/bin/ 下:
1 |
|
重新执行操作:
1 2 |
|
以上.https://www.cnblogs.com/cxbhakim/p/9149596.html
5.会出现的问题5
Bind for 0.0.0.0:80 failed: port is already allocated.解决方案
一句话总结就是容器占用的port还没有完全释放
查看进程,发现相关的容器并没有在运行,而 docker-proxy 却依然绑定着端口:
$ docker ps
检查docker镜像
$ ps -aux | grep -v grep | grep docker-proxy
查看被docker-proxy占用的端口
停止 doker 进程,删除所有容器,然后删除 local-kv.db 这个文件,再启动 docker 就可以了。
$ sudo service docker stop
$ docker rm $(docker ps -aq)
$ sudo rm /var/lib/docker/network/files/local-kv.db
$ sudo service docker start
https://www.cnblogs.com/typttxs/p/10764640.html