一、Docker开启远程访问

[root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/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

可能是版本问题。现在的/usr/lib/systemd/system/docker.service比以前多了些内容,但依旧是把-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock添加到ExecStart这行,如下:

idea 本地docker打包上传到 docker desktop_maven

二、IDEA默认已经安装了插件

idea 本地docker打包上传到 docker desktop_intellij idea_02

三、启用Docker

配置ip

idea 本地docker打包上传到 docker desktop_intellij idea_03


添加完成后可以看到自己的docker

idea 本地docker打包上传到 docker desktop_docker_04

四、Spring Boot服务docker部署

1、新建一个Spring Boot工程,在工程里写一个REST接口,如下,简单返回一个字符串。

@RestController
public class DockerController {
    @GetMapping("/docker")
    public String docker(){
        return "Hello Docker";

2、修改pom文件,添加properties,添加plugin:(可以不需要)

  • 很多文章都说需要添加 properties,但经过自己测试,发现可以不需要添加,还是把它贴出来吧
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.2.4.RELEASE</version>
       <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.scitc</groupId>
   <artifactId>docker</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>docker</name>
   <description>Demo project for Spring Boot</description>

   <properties>
       <java.version>1.8</java.version>
       <!--分割线-->
       <docker.image.prefix>docker-demo</docker.image.prefix>
   </properties>

   <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>

       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
           <exclusions>
               <exclusion>
                   <groupId>org.junit.vintage</groupId>
                   <artifactId>junit-vintage-engine</artifactId>
               </exclusion>
           </exclusions>
       </dependency>
   </dependencies>

   <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>

</project>
  1. 配置Dockerfile文件:在工程根目录下新建Dockerfile文件,内容如下:
#指定基础镜像,在其上进行定制
FROM java:8

#维护者信息
MAINTAINER chy

#设置时区
RUN echo "Asia/Shanghai" > /etc/timezone

#添加上下文目录下的target/*.jar 到容器里  待会用maven打包后就会有文件了
ADD target/*.jar demo-1.0.0.jar

#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080

#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]
  1. 添加配置
  2. idea 本地docker打包上传到 docker desktop_docker_05


  3. idea 本地docker打包上传到 docker desktop_docker_06

  4. apply—>ok
  5. 使用Maven打包项目
  6. idea 本地docker打包上传到 docker desktop_docker_07

  7. 打包完成,这里我maven里面设置的<finalName>docker</finalName>
  8. idea 本地docker打包上传到 docker desktop_spring_08

运行我们的docker

此时,docker就多了我们的镜像和容器

idea 本地docker打包上传到 docker desktop_intellij idea_09


6. 访问测试

idea 本地docker打包上传到 docker desktop_intellij idea_10

六、推送到阿里云

https://cr.console.aliyun.com/cn-hangzhou/instances/repositories

  1. 创建自己的镜像仓库
  2. 输入账号密码
  3. idea 本地docker打包上传到 docker desktop_docker_11

  4. 查看信息

idea 本地docker打包上传到 docker desktop_intellij idea_12


5. 推送

idea 本地docker打包上传到 docker desktop_intellij idea_13

idea 本地docker打包上传到 docker desktop_docker_14

几乎来自于文章