文章目录[x]
- 0.1: 有修改时重新部署后端
- 0.2: 前端运行命令
-
首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的jar包上传进去
# 创建一个目录,然后所有的操作都是在这个目录中进行的。 # 这里目录的名字可以随便起 mkdir classmate
然后上传jdk和项目jar包-
新建或上传Dockerfile
Dockerfile
# 基础镜像 FROM centos:centos7.9.2009 # 这里是 # 配置环境变量和jdk的安装目录 ENV JAVA_DIR=/usr/local # 安装jdk # \ 就是换到下一行输入,对实际命令没有任何影响,只是为了方便观看 RUN cd $JAVA_DIR \ # 使用tar命令将当前目录下(这里因为上面配置了所以所在的目录也就是 /usr/local/下面)的jdk文件进行解压 && tar -xvf ./jdk-8u321-linux-x64.tar.gz \ # 然后修改解压后的文件名为java8 ,此时就是 /usr/local/java8 # 这里需要注意的是下面的 jdk1.8.0_321,他就是解压后的文件名 # 如果这里你不清楚解压后的文件是什么,则可以先解压看以下文件名是什么,然后在进行书写这里的名称 && mv ./jdk1.8.0_321 ./java8 # 配置JAVA的环境变量 ENV JAVA_HOME=$JAVA_DIR/java8 # 配置到PAHT中 ENV PATH=$PATH:$JAVA_HOME/bin # 暴露端口 5566 --!!!容器内部端口 EXPOSE 5566 # 入口,jar文件的启动命令 # 这里app.jar就是我的jar文件 ENTRYPOINT ['java','-jar','/tmp/app.jar']
我的
# 基础镜像 # Docker image for springboot file run # VERSION 0.0.1 # Author: # 基础镜像使用java FROM openjdk:8-jre-slim # author MAINTAINER muluo # 挂载目录 # VOLUME 指定了临时文件目录为/home/smartcollege。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/home/smartcollege VOLUME /home/smartcollege # 创建目录 RUN mkdir -p /home/smartcollege # 指定路径 WORKDIR /home/smartcollege # 复制jar文件到路径 COPY ./jar/classmate-info-server.jar /home/smartcollege/classmate-info-server.jar # 启动网关服务 ENTRYPOINT ["sh","-c","exec java $JAVA_OPTS -jar classmate-info-server.jar"]
部署其他项目时只需修改classmate-info-server.jar相关的名称-
以上命令配置完成后,即可输入命令进行build,然后回车
# classmate-jar:1.0 就是名称:TAG # . 这个.意思就是找到当前目录下的Dockerfile文件进行build,然后回车 docker build -t classmate-jar:1.0 .
当你看到最下面的三行,就是创建成功
Successfully built dcb5dd17bc4d # 成功创建, IMAGES ID Successfully tagged classmate-jar:1.0 # 成功 REPOSITORY:TAG
然后输入docker images 查看 是否创建成功启动该容器
# 启动该容器使用docker run 命令,回车 # --name 给container起一个名字 # -d 后台运行 # -p 指定端口映射到主机端口,主机端口:容器端口 ,这里需要注意的是如果防护墙位关闭则主机端口必须开启,这里我已经开启了5566端口,所以可以通过同一个局域网下访问该端口 # classmate-jar:1.0 镜像名和TAG docker run --name classmate-jar -d -p 8081:8081 classmate-jar:1.0 # 通过docker ps 查看容器运行状况 # SATATUS 状态 # PORTS 端口映射 # NAMS 名字 # 等 # 加入网关启动 docker run -d -p 8081:8081 --name classmate-jar --network classmate-jar classmate-jar:latest
可能使用到的命令:docker run -itd -p 8081:8081 --network classmate-jar --name classmate-jar classmate-jar:latestdocker inspect classmate-jar 用于获取关于名为classmate-info
的 Docker 容器或镜像的详细信息。docker logs -f classmate-jar 查看classmate-jar后端项目的日志信息docker rm -f classmate-jar 强制删除docker psdocker imagesVim 相关有修改时重新部署后端
#先cd到jar文件夹所在的目录 docker cp ./jar/classmate-info-server.jar classmate-jar:/home/smartcollege docker restart classmate-jar
前端运行命令
docker run -itd \ --name nginx-classmate \ -v /mydata/yuanqu-classmate/nginx/ssl:/home/qd/projects/qd-ui/ssl \ -v /mydata/yuanqu-classmate/nginx/html:/home/qd/projects/qd-ui \ -v /mydata/yuanqu-classmate/nginx/logs:/var/log/nginx \ -v /mydata/yuanqu-classmate/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /etc/localtime:/etc/localtime \ -p 8077:443 \ --network classmate-jar \ nginx:1.22.0
这个docker run
命令用于启动一个新的 Docker 容器,并且带有多个参数来配置容器的行为。-
docker run
: Docker 的基本命令,用于启动一个新的容器。 -
-i
: 保持 STDIN(标准输入)打开,即使没有附加。 -
-t
: 分配一个伪终端或终端。 -
-d
: 在后台运行容器,并打印容器 ID。 -
--name
: 为容器指定一个名称,这里是nginx-classmate
。 -
-v
或--volume
: 用于挂载卷,即将宿主机上的目录或文件挂载到容器内。 -
第一个
-v
将宿主机上的/mydata/yuanqu-classmate/nginx/ssl
目录挂载到容器内的/home/qd/projects/qd-ui/ssl
目录。 -
以此类推,其他
-v
选项也是将宿主机上的不同目录或文件挂载到容器内的相应位置。 -
/etc/localtime:/etc/localtime
这条挂载命令通常用于同步容器和宿主机的时区设置。 -
-p
或--publish
: 用于端口映射,将容器内的端口映射到宿主机上的端口。 -
这里,容器内的
443
端口被映射到宿主机上的8077
端口。 -
--network
: 指定容器要使用的网络。 -
这里,容器将连接到名为
classmate-jar
的网络。 -
nginx:1.22.0
: 指定要运行的 Docker 镜像和标签。 -
这里,将运行
nginx
镜像的1.22.0
版本。
综合解释综合以上各点,这个docker run
命令的作用是:-
在后台启动一个名为
nginx-classmate
的容器。 -
挂载多个宿主机的目录或文件到容器内的相应位置。
-
将容器内的
443
端口映射到宿主机的8077
端口。 -
将容器连接到
classmate-jar
网络。 -
使用
nginx
镜像的1.22.0
版本作为容器的运行基础。
这个容器配置非常适合用于运行一个 Nginx web 服务器,并将相关的配置文件、日志文件、SSL 证书和网站内容存储在宿主机上,以便于管理和备份。同时,通过端口映射,你可以通过访问宿主机的8077
端口来访问容器内的 Nginx 服务。 -