Docker 启动nginx + 运行 React/Springboot 项目 -入门级

docker 简单启动 nginx

下载镜像

官方镜像仓库:hub.docker.com

搜索:nginx

bash 复制代码
docker pull nginx #下载
docker images #查看镜像列表

启动

bash 复制代码
docker run --name nginx -p 80:80 -d nginx #启动
docker ps # 查看容器列表

--name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器

-p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定

-d 后台启动

已经做了宿主机80端口映射, 浏览器输入:http://localhost/ 即可访问到 nginx页面

docker 运行react 前端

创建react项目

bash 复制代码
npx create-react-app docker-react
cd docker-react

新建Dockerfile 和 .dockerignore 文件

在项目根目录下创建这2文件

bash 复制代码
FROM node:alpine
RUN mkdir /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD ["npm", "start"]

.dockerignore

lua 复制代码
node_modules
npm-debug.log

创建镜像

bash 复制代码
docker build -t <yourname/projectname> .

创建并运行容器

arduino 复制代码
docker run -d -it -p 3000:3000 <yourname/projectname>

浏览器访问

现在打开你的浏览器并前往 http://localhost:3000/,你将会看到以下输出。

docker 运行 Springboot

新建 Springboot项目

idea New Project

添加代码

非常简单的 Web 项目,只有一个控制器,代码如下:

less 复制代码
@RequestMapping
@RestController
public class DockerController {
    @RequestMapping("/")
    public String hello() {
        return "Docker, Hello ~";
    }
}

application.properties:

ini 复制代码
server.port= 8082

配置pom.xml

这里用到了docker插件:dockerfile-maven-plugin

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.15-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.dcoker</groupId>
    <artifactId>docker-springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>docker-springboot</name>
    <description>Docker Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <docker.image.prefix>limoss</docker.image.prefix>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <repository>${docker.image.prefix}/${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

</project>

配置Dockerfile

项目根目录下新建 Dockerfile文件:

css 复制代码
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
EXPOSE 8082
ENTRYPOINT ["java","-jar","/app.jar"]

项目打包及docker build

打包之前 把pom中相关的依赖下载完整

运行 docker run

arduino 复制代码
run -d -p 8082:8082 limoss/docker-springboot

下面命令查看运行情况

复制代码
docker ps
docker logs containerId

成功访问

浏览器输入:http://localhost:8082/

Docker 常用命令汇总

Docker 常用命令汇总>>

相关推荐
AC赳赳老秦1 小时前
Kubernetes 与 DeepSeek:高效 Pod 部署配置与资源调度优化指南
人工智能·云原生·容器·kubernetes·自动化·notepad++·deepseek
阿方索2 小时前
Kubernetes Pod 管理
云原生·容器·kubernetes
哪里不会点哪里.2 小时前
Docker
运维·docker·容器
汪碧康2 小时前
一文掌握k8s的健康检查探针
云原生·容器·kubernetes·k8s·xkube·k8s管理平台
七七powerful2 小时前
docker 搭建wtsap代理
运维·docker·容器
Shanxun Liao3 小时前
Docker vlmcsd 完整管理指南
运维·docker·容器
有谁看见我的剑了?4 小时前
K8s crictl 客户端学习
学习·容器·kubernetes
怒放de生命20104 小时前
前端子包+docker流水线部署+nginx代理部署
前端·nginx·docker
KubeSphere 云原生4 小时前
云原生周刊:Kubernetes 1.35 新机制与云原生生态更新
云原生·容器·kubernetes
Java程序员威哥4 小时前
云原生Java应用优化实战:资源限制+JVM参数调优,容器启动快50%
java·开发语言·jvm·python·docker·云原生