JAVA29-Java中使用docker

Docker 是一个旨在帮助开发者构建、分享和运行容器应用程序的平台。我们负责处理繁琐的设置工作,让您能够专注于代码。

镜像(image)

  • 一个预先定义好的模板文件
  • Docker引擎可以按照这个模板文件启动无数个一模一样,互不干扰的容器

容器(container)

容器就是一台独立的虚拟机,拥有网络,进程,文件系统等资源,默认和宿主机不发生任何交互

常用命令

拉取镜像

1
sudo docker pull centos:7 # 拉取centos7镜像

查看镜像

1
sudo docker images

删除镜像

1
sudo docker rmi 442fd76b9077 # 删除id为442fd76b9077的镜像

查看容器

1
2
sudo docker ps    # 查看运行中的容器
sudo docker ps -a # 查看所有容器

删除容器

1
sudo docker rm centos7 # 删除名称为centos7的容器

启动容器

1
sudo docker start centos7

停止容器

1
sudo docker stop centos7

运行容器

  • --rm 退出重启后删除该容器
  • --name NAME 为容器指定一个名字
  • -v 本地文件:容器文件 映射文件到容器
  • -p 本地端口:容器端口 映射端口
  • -e NAME=VALUE 设置容器内的环境变量
  • -it 交互模式下运行
  • -d daemon模式下运行
1
sudo docker run --rm -it --name centos7 -v /home/w/my.codes:/root/my.codes my/centos7

部署与发布

maven-exec-plugin

不推荐生产环境使用这种方式,有诸多的不方便

  1. 需要Maven
  2. 需要源代码
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <id>package</id>
            <phase>package</phase>
            <goals>
                <goal>exec</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <executable>java</executable>
        <arguments>
            <argument>-classpath</argument>
            <classpath/>
            <argument>com.github.wjinlei.Main</argument>
        </arguments>
    </configuration>
</plugin>

使用方法

  • 挂载到package阶段后mvn package
  • 或者直接用mvn exec:exec

jar包

  • Springboot项目可以通过mav package生成可启动的jar
  • jar包可通过java -jar xxxxx.jar命令启动
updatedupdated2025-03-012025-03-01