Docker发布镜像

1.打开Docker远程访问

找到docker.service,一般地址在/usr/lib/systemd/system/docker.service
vi /usr/lib/systemd/system/docker.service

注释掉这行:ExecStart=/usr/bin/dockerd -H fd:  
加上这行:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重新加载docker配置文件,并重启docker

#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker.service

然后在系统中打开2375防火墙

2. 编写Dockfile

在src/main/docker里面编写Dockerfile

# Docker image for real_estate_analysis run
# VERSION 0.0.1
# Author: sunhu
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER sunhuwh <764503410@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

ADD real_estate_analysis.jar real_estate_analysis.jar
# 运行jar包
RUN bash -c 'touch /real_estate_analysis.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/real_estate_analysis.jar"]

3. 使用MVN发布镜像

在pom.xml中加入:

<build>
		<plugins>
			<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- 镜像名称-->
                    <imageName>${project.artifactId}</imageName>
                    <!-- 镜像标签-->
                    <imageTags>
                        <!--可以指定多个标签    建议弄成自增序列或者时间戳类型,用于区分版本-->
                        <imageTag>${maven.build.timestamp}</imageTag>
                    </imageTags>
                    <baseImage>java</baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <!-- dockerfile文件路径-->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
		</plugins>
 		<finalName>${project.artifactId}</finalName>
 </build>

运行mvn clean package就可以直接打包镜像,然后把文件丢到Docker宿主机上构建镜像。

4. IDEA支持Docker脚本

可以在IDEA中安装docker插件,可以操作容器和镜像。

5. 总结

个人感觉IDEA操作docker风险高,需有权限的人来操作更安全。
更推荐使用Jenkins + Docker来管理发布任务。功能更多,更灵活。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值