Docker入门到精通 (9)

9 生成镜像

9.1 打包完成生成镜像

在已经安装好的docker的linux环境中

mkdir -p /usr/local/docker/test1

把打包好的jar包导入到此文件夹下

创建文件Dockerfile,并填写相关信息

vi Dockerfile

填写相关信息

FROM java:8
VOLUME /tmp
ADD docker-demo.jar test1.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test1.jar"]

执行docker命令,其中test1表示镜像名称

docker build -t test1 .

之后就会获取到了镜像,运行以下命令查看

docker images

启动 --rm表示容器退出时候清理容器内部的文件系统

docker run -d --rm --name test1-8081 -p 8081:8080 test1

9.2 IDEA操作Docker

9.2.1 Docker开启远程访问

#修改该Docker服务文件
vi /lib/systemd/system/docker.service
#注释ExacStart这行
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#添加
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker.service
#查看端口是否开启
netstat -nlpt #如果找不到netstat命令,可以进行安装。yum install net-tools
#直接curl看是否生效
curl http://127.0.0.1:2375/info

IDEA中查看是否有Docker路径为:File | Settings | Build, Execution, Deployment | Docker,如果没有则需要 File | Settings | Plugins搜索docker找到插件 Docker integration,点击右边的Install按钮进行安装

9.2.2 操作Docker

打开IDEAFile | Settings | Build, Execution, Deployment | Docker中添加一个Docker,选中TCP socker配置URL地址,如果没有验证文件则不需要配置Certificates folder,删除里面的东西即可。

配置File | Settings | Build, Execution, Deployment | Docker | Registry,添加一个Registry,Address填写阿里云的加速镜像即可,配置用户名和镜像密码。

点击IDEA最下方的行工具栏-Docker,选中Docker右键启动

可以看到会出现ContainersImages,其中Containers可以被启动,停止。右方有Log等容器信息。Images可以创建一个Containers填写上Containers nameBind ports即可,也可以在Run option里敲参数

9.3 IDEA实现自动部署

修改POM文件,添加 docker-maven-plugin插件,

<build>
        <finalName>docker-demo</finalName>
        <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>
                    <!--指定标签-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!--基础镜像jdk8-->
                    <baseImage>java</baseImage>
                    <!--制作者本人信息-->
                    <maintainer>liu0meng@163.com</maintainer>
                    <!--切换到root目录-->
                    <workdir>/ROOT</workdir>
                    <cmd>["java", "-version"]</cmd>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
                    <!--指定远程 docker 地址仓库-->
                    <dockerHost>http://192.168.67.69:2375</dockerHost>
                    <!--复制jar包到docker容器的指定目录配置-->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

运行命令

mvn install docker:build

即可完成镜像构建

maven package时候执行 mvn install dockerfile:build 完成镜像构建

在本插件下方添加标签

<executions>
                   <execution>
                       <id>build-image</id>
                       <phase>package</phase>
                       <goals>
                           <goal>build</goal>
                       </goals>
                   </execution>
                </executions>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是刘奇奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值