dockerfile文件用file创建嘛_docker竟然可以这么用,妙啊~~~

小伙伴有没有这样的苦恼,测试环境迭代的时候,你总是需要mvn clean  package(这中间可能占个2-3分钟),然后xshell连接,xftp把jar传到服务器上最后java -jar .整套下来项目大的话怎么也得5-6分钟(可能我更慢)主要是操作步骤太多,那有没有一劳永逸的方法呢?哎,今天就给大家分享个工作中可能用到的方法,使用idea集成docker一键部署

方案一:使用dockerfile运行

我这里用的是vmware虚拟机搭建的测试环境,具体搭建可以点击这里

首先关闭防火墙(使用阿里云需要你需要会配置安全组开放端口)

// 查看状态
firewall-cmd --state
// 关闭防火漆
systemctl stop firewalld.service  
// 关闭开机自启
systemctl disable firewalld.service

然后开启2375端口  开启远程连接
vi /lib/systemd/system/docker.service在 “ExecStart”后面加上  -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock然后重启docker

[root@waa ~]# systemctl daemon-reload   systemctl enable docker # 开机自启
[root@waa ~]# systemctl restart docker 或者 service docker restart
5c9c253f7f9bbe547816bf9e369a8ca8.png
image.png

使用Dockerfile执行程序

创建Dockerfile文件

tips:dockerfile你可以理解为创建镜像的“原材料”

# 使用的外部环境
FROM java:8

# 映射容器卷
VOLUME /tmp

# 往容器中添加jar包
ADD /target/docker-run-test-0.0.1-SNAPSHOT.jar /app.jar

# 启动入口
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

tips:目录结构中target和Dockerfile在同一目录下12fc5cca3bce644188e47781da91dad0.pngdocker运行环境cf3004392a6d9b6797c47d280396b17c.png

运行后直接就可以访问地址啦958c3760df9d0e2beca2074525aa7f02.png

方案二:使用maven-dokcer-plugs

可以在pom.xml中配置dockerfile标签,来生成dockerfile

   <plugin>
                <groupId>com.spotifygroupId>
                <artifactId>docker-maven-pluginartifactId>
                <version>1.0.0version>
                <configuration>
                    
                    <dockerHost>http://192.168.230.128:2375dockerHost>
                    
                    <imageName>${docker.image.prefix}/${project.artifactId}imageName>
                    
                    <dockerDirectory>${project.basedir}dockerDirectory>
                    
                    <entryPoint>["java","-Djava.security.egd=file:/dev/./urandom","-jar","/${project.build.finalName}.jar"]entryPoint>
                    <rm>truerm>

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

双击docker:buildab1dd1d0f2a336ac863bb6215383ddb6.png

右击创建容器9727e73b86450c7dbf0da5c6847f8f27.png

配置需要创建的容器信息0c51d15052a583393ab6353ec1af3c53.png点击run

2ed2ba5a822d78ad34aa9838043b18f8.png

访问一下

d08026c2eb90976bee966ce5f3e88f13.png

大功告成

记录、分享

我们的热爱
csdn:jar壳虫

1ddf18070d28cd0fbf9ceb92e174bb25.png 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Docker中,你可以使用`docker run`命令或者更高级的`docker create`和`docker cp`命令来创建文件。这里我将简要说明两种方法: 1. **在运行容器时创建文件**: 如果你想在运行容器时创建文件,可以在`docker run`命令中指定运行命令,并通过`-v`或`--volume`选项映射宿主机目录到容器中,然后在容器内执行`touch`、`echo`或其他创建文件的命令。 ```bash docker run -it --rm --name my_container -v /path/on/host:/path/in/container your_image touch /path/in/container/your_file.txt ``` 2. **先创建容器,再复制文件**: 先通过`docker create`创建一个无状态的只读容器,然后用`docker cp`将文件从宿主机复制到容器。 ```bash # 创建一个新容器,但不启动 docker create -v /path/on/host:/path/in/container your_image # 使用docker cp将文件复制到容器 docker cp /path/on/host/your_file.txt my_container:/path/in/container/your_file.txt # 启动容器并执行必要的操作 docker start my_container ``` 3. **使用Dockerfile构建并创建文件**: 如果你有复杂的文件需求,可以通过Dockerfile编写,这样可以在镜像构建过程中生成文件。例如,在Dockerfile中添加`RUN`指令来创建文件。 ```Dockerfile FROM your_base_image RUN touch /path/in/container/your_file.txt ``` 构建镜像后,文件就已经包含在其中了。 相关问题: 1. Dockerfile中的`RUN`命令具体是什么? 2. 如何使用`docker cp`命令? 3. 创建文件是否会在容器停止后消失?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值