docker-运维-idea中使用docker部署spring boot项目

  • idea中使用docker部署spring boot项目
    • 开启docker远程访问
      • 修改docker配置文件:
      • 重启docker服务
      • 校验
    • idea中布署boot
      • 使用docker-image-plugin插件方式
      • 直接执行Dockerfile方式

idea中使用docker部署spring boot项目

开启docker远程访问

修改docker配置文件:

vi /lib/systemd/system/docker.service

找到ExecStart,将修改如下:

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375


[root@bluesky dc-redis]# vi /lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375  ## 改了这里

ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
...

重启docker服务


[root@bluesky dc-redis]# systemctl daemon-reload
[root@bluesky dc-redis]# service docker restart
Redirecting to /bin/systemctl restart docker.service

校验

curl http://localhost:2375/version

[root@bluesky dc-redis]# curl http://localhost:2375/version
{"Platform":{"Name":"Docker Engine - Community"}....

idea中布署boot

现有spring boot项目,项目结构:

boot-docker
    -> src
        -> main
        -> test
    -> Dockerfile
    -> pom.xml

注意Dockerfile的位置!!,和 src 同级

Dockerfile内容:

FROM jdk8:latest
VOLUME /tmp
COPY target/boot-docker.jar app.jar  # target/boot-docker.jar 的路径是相对于
									 # Dockerfile的位置,所以Dockerfile位置很重要!!
RUN sh -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

直接执行Dockerfile方式

连接Docker server

docker-运维-idea中使用docker部署spring boot项目_第1张图片
idea底部可以看到Docker的服务面板:

docker-运维-idea中使用docker部署spring boot项目_第2张图片

如果不能看到Docker服务面板,可以通过keymap中, 设置快捷键显示:

docker-运维-idea中使用docker部署spring boot项目_第3张图片

构建镜像,点击 Edit configuration:

docker-运维-idea中使用docker部署spring boot项目_第4张图片

docker-运维-idea中使用docker部署spring boot项目_第5张图片
直接运行,如果运行成功,可以在docker面板看到:

docker-运维-idea中使用docker部署spring boot项目_第6张图片

根据镜像创建容器:

docker-运维-idea中使用docker部署spring boot项目_第7张图片
docker-运维-idea中使用docker部署spring boot项目_第8张图片

使用docker-image-plugin插件方式

pom.xml中加入 plugin :


<plugin>
    <groupId>com.spotifygroupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>1.2.0version>

    
    <executions>
        <execution>
            <id>build-imageid>
            
            <phase>packagephase>
            <goals>
                <goal>buildgoal>
            goals>
        execution>
    executions>

    <configuration>
        
        <imageName>${project.artifactId}imageName>
        
        <imageTags>
            <imageTag>latestimageTag>
        imageTags>
        
        <dockerDirectory>${project.basedir}/dockerDirectory>

        
        <dockerHost>http://192.168.x.xx8:2375dockerHost>

        
        <resources>
            <resource>
                <targetPath>/targetPath>
                
                <directory>${project.build.directory}directory>
                
                <include>${project.build.finalName}.jarinclude>
            resource>
        resources>
    configuration>
plugin>

然后,在右侧点击package,就可以构建镜像了,其他的和上一种方式一样

你可能感兴趣的:(docker-运维-idea中使用docker部署spring boot项目)