云计算实训40——部署nmt、部署project_exam_system项目

news2024/9/21 11:02:29

NMT

N指的是nginx

M指的是mysql

T指的是tomcat

一、环境准备

#使用基础的docker指令来创建镜像,实现项目的发布

#安装docker、编辑daemon.json文件、安装docker-compose编排容器、启动docker

#拖拽docker.sh的脚本

[root@docker--1 ~]# rz -E
 
rz waiting to receive.

#查看
 
[root@docker--1 ~]# ls
 
anaconda-ks.cfg  docker.sh

#让脚本生效

 [root@docker--1 ~]# source docker.sh 

#编辑daemon.json文件
 
[root@docker--1 ~]# vim /etc/docker/daemon.json 

#编辑docker.service文件
 
[root@docker--1 ~]# vim /usr/lib/systemd/system/docker.service

#重新加载daemon
 
[root@docker--1 ~]# systemctl daemon-reload

#启动容器
 
[root@docker--1 ~]# systemctl start docker

docker.sh脚本内容如下:

cat << EOF | tee /etc/modules-load.d/k8s.conf 
overlay
br_netfilter
EOF
 
modprobe overlay
 
modprobe br_netfilter
 
cat << EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
 
sysctl --system
 
yum install -y yum-utils device-mapper-persistent-data lvm2
 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
 
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

二、部署nginx

1.拉取镜像

#拉取nginx镜像

[root@docker3 ~]# docker pull nginx
 
Using default tag: latest
 
latest: Pulling from library/nginx
 
Digest: sha256:447a8665cc1dab95b1ca778e162215839ccbb9189104c79d7ec3a81e14577add
 
Status: Image is up to date for nginx:latest
 
docker.io/library/nginx:latest

2.查看镜像

[root@docker3 ~]# docker images
 
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 
nginx        latest    5ef79149e0ec   2 weeks ago   188MB

3.创建容器

#创建nginx容器

[root@docker--1 ~]# docker run -itd -p80:80 nginx:latest a9200f608c60aa1c8827b5562b7906d543d48e38c06f76bdb1b702ce73209117

4.查看容器

[root@docker--1 ~]# docker ps
 
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS             NAMES
 
a9200f608c60   nginx:latest   "/docker-entrypoint.…"   19 seconds ago   Up 17 seconds cp   stupefied_feistel

5.进行验证

[root@docker--1 ~]# curl localhost
 
<!DOCTYPE html>
 
<html>
 
<head>
 
<title>Welcome to nginx!</title>
 
<style>
 
html { color-scheme: light dark; }
 
body { width: 35em; margin: 0 auto;
 
font-family: Tahoma, Verdana, Arial, sans-serif; }
 
</style>
 
</head>
 
<body>
 
<h1>Welcome to nginx!</h1>
 
<p>If you see this page, the nginx web server is successfully installed and
 
working. Further configuration is required.</p>
 
<p>For online documentation and support please refer to
 
nginx.org.<br/>
 
Commercial support is available at
 
nginx.com.</p>
 
<p><em>Thank you for using nginx.</em></p>
 
</body>
 
</html>

注:容器启动后nginx服务就自动发布了,浏览器也能够看到nginx页面

三、部署project_exam_system项目

1.创建目录

#创建一个目录,放置前端和后端的资料

[root@docker--1 ~]# mkdir project_exam_system

#切入到所创建的目录中

[root@docker--1 ~]# cd project_exam_system/

#创建web目录

[root@docker--1 project_exam_system]# mkdir web

#切入到web目录下

[root@docker--1 project_exam_system]# cd web/

2.拖拽dist.zip的压缩包

[root@docker--1 web]# rz -E
 
rz waiting to receive.
 
[root@docker--1 web]# ls
 
dist.zip

#安装unzip

[root@docker--1 web]# yum -y install unzip

#使用unzip进行解压dist.zip的包

[root@docker--1 web]# unzip dist.zip 

#查看
 
[root@docker--1 web]# ls
 
dist  dist.zip
 
[root@docker--1 web]# cd ..

3.停止并删除前面所创建的容器

#停止容器

[root@docker--1 project_exam_system]# docker stop a92

a92

#删除容器

[root@docker--1 project_exam_system]# docker rm a92

a92

4.创建容器

创建容器,进行映射端口和挂载目录

[root@docker--1 project_exam_system]# docker run -itd -p80:80 -v /root/project_exam_syml/ nginx:latest 
 
7c7f8bbb4ae732042b9ad3060d58f5c595f76fd7348b2b8e5beea857f74cf6e2

5.浏览器访问

6.采用域名劫持设置域名

顾名思义也就是修改物理机上的hosts文件来达到效果

修改hosts文件

四、后端业务jdk17、springboot

1.拉取镜像

#拉取centos镜像
 
[root@docker--1 project_exam_system]# docker pull centos
 
#回到根目录
 
[root@docker--1 project_exam_system]# cd

2.拖拽项目资源和jdk17版本的文件
 
项目资源:application.properties
 
                  Project_ExamSystem-V1.0.0.war
 
jdk17版本的文件:  jdk-17_linux-x64_bin.tar.gz       

 #拖拽

[root@docker--1 ~]# rz -E
rz waiting to receive.
[root@docker--1 ~]# rz -E
rz waiting to receive.
[root@docker--1 ~]# rz -E
rz waiting to receive.
 
#查看 
 
[root@docker--1 ~]# ls
anaconda-ks.cfg         docker.sh                    project_exam_system
application.properties  jdk-17_linux-x64_bin.tar.gz  Project_ExamSystem-V1.0.0.war

 3.使用centos镜像创建容器

[root@docker--1 ~]# docker run -it centos:latest /bin/bash
 
#使用ctrl p+q退出
 
[root@2267541087e9 /]# [root@docker--1 ~]# 

4.查看容器

[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE           COMMAND                   CREATED          STATUS          PORTS                               NAMES
2267541087e9   centos:latest   "/bin/bash"               44 seconds ago   Up 43 seconds                                       hardcore_raman
7c7f8bbb4ae7   nginx:latest    "/docker-entrypoint.…"   34 minutes ago   Up 34 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   thirsty_babbage

5.将在服务器上的java文件上传到容器

[root@docker--1 ~]# docker cp jdk-17_linux-x64_bin.tar.gz 226:/
Successfully copied 183MB to 226:/
[root@docker--1 ~]# docker cp application.properties 226:/
Successfully copied 4.1kB to 226:/
[root@docker--1 ~]# docker cp Project_ExamSystem-V1.0.0.war 226:/
Successfully copied 41MB to 226:/

6.对已经传到容器的文件进行部署

#连接正在运行的容器
  
[root@docker--1 ~]# docker attach 226

#查看

[root@2267541087e9 /]# ls    
Project_ExamSystem-V1.0.0.war  home                media  run     usr
application.properties           jdk-17_linux-x64_bin.tar.gz  mnt    sbin  var
bin                   lib                opt    srv
dev                   lib64                proc   sys
etc                   lost+found            root   tmp
 
#创建目录
 
[root@2267541087e9 /]# mkdir /usr/local/jdk
 
#解压 jdk-17
 [root@2267541087e9 /]# tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/jdk/ --strip-components=1
 

 #编辑application.properties文件
[root@2267541087e9 /]# vi application.properties 
 
spring.datasource.url=jdbc:mysql://192.168.1.24:3306/project exam system
spring.datasource.username=dd
spring.datasource.password=1
spring,datasource.driver-class-name=com.mysal.cj.jdbc.Driver

#使用java运行Project_ExamSystem-V1.0.0.war
 
[root@2267541087e9 /]# /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war 
 
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.3.2)
 running for 8.671)
read escape sequence

#访问验证

[root@docker--1 ~]# curl 172.17.0.3:8080
{"code":20002,"msg":"账号不存在或密码错误"}[root@docker--1 ~]# 

#从已经运行的容器中创建一个新的镜像

[root@docker--1 ~]# docker commit 226 java:v0
sha256:cf1a38ea2001eac37d139eaa9d76899aed7e3521fcd7c07588edcf705f817add

#查看镜像

[root@docker--1 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
java         v0        cf1a38ea2001   8 seconds ago   774MB
nginx        latest    5ef79149e0ec   2 weeks ago     188MB
centos       latest    5d0da3dc9764   2 years ago     231MB

#查看容器
[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE           COMMAND                   CREATED             STATUS             PORTS                               NAMES
2267541087e9   centos:latest   "/bin/bash"               38 minutes ago      Up 38 minutes                                          hardcore_raman
7c7f8bbb4ae7   nginx:latest    "/docker-entrypoint.…"   About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp   thirsty_babbage

#停止容器
[root@docker--1 ~]# docker stop 226
226
#删除容器
[root@docker--1 ~]# docker rm 226

#启动名为java:v0镜像

[root@docker--1 ~]# docker run -itd -p8080:8080 java:v0 
d3a039010bf133b0dffa280664274d517f2c149d751ab45883d3dfc08dc2f5cc

#查看容器
[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS             PORTS                                       NAMES
d3a039010bf1   java:v0        "/bin/bash"               12 seconds ago      Up 11 seconds      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   quirky_bell
7c7f8bbb4ae7   nginx:latest   "/docker-entrypoint.…"   About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp           thirsty_babbage

#连接正在运行的容器
[root@docker--1 ~]# docker attach d3a

#使用java运行Project_ExamSystem-V1.0.0.war
[root@d3a039010bf1 /]# /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war 
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 
 :: Spring Boot ::                (v3.3.2)
 
running for 8.057)
read escape sequence
ctrl p+q退出

#查看容器
[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS             PORTS                                       NAMES
d3a039010bf1   java:v0        "/bin/bash"               11 minutes ago      Up 11 minutes      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   quirky_bell
7c7f8bbb4ae7   nginx:latest   "/docker-entrypoint.…"   About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp           thirsty_babbage

 6.浏览器访问

五、部署mysql

拉取mysql镜像

[root@docker--1 ~]# docker pull mysql:5.7.44

创建容器,指定端口映射

[root@docker--1 ~]# docker run -itd -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.44
48fd8551ec838b218bd853bb49e99fb4650ebd3c22a93d214a2cc64941eae141

查看容器

[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
48fd8551ec83   mysql:5.7.44   "docker-entrypoint.s…"   15 seconds ago   Up 14 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   flamboyant_nash
d3a039010bf1   java:v0        "/bin/bash"               3 hours ago      Up 3 hours      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              quirky_bell
7c7f8bbb4ae7   nginx:latest   "/docker-entrypoint.…"   5 hours ago      Up 5 hours      0.0.0.0:80->80/tcp, :::80->80/tcp                      thirsty_babbage

移动复制文件

#切入到project_exam_system目录下
[root@docker--1 ~]# cd project_exam_system/
[root@docker--1 project_exam_system]# ls
project_exam_system.sql  web

#创建mysql目录
[root@docker--1 project_exam_system]# mkdir mysql

#移动文件
#将project_exam_system.sql移动到mysql目录下
[root@docker--1 project_exam_system]# mv project_exam_system.sql mysql/

#将project_exam_system.sql复制到容器
 
[root@docker--1 ~]# docker cp project_exam_system/mysql/project_exam_system.sql 48fd:/
Successfully copied 11MB to 48fd:/


#查看镜像
 
[root@docker--1 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
java         v0        cf1a38ea2001   4 hours ago    774MB
nginx        latest    5ef79149e0ec   2 weeks ago    188MB
mysql        5.7.44    5107333e08a8   8 months ago   501MB
centos       latest    5d0da3dc9764   2 years ago    231MB

#查看容器
[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
48fd8551ec83   mysql:5.7.44   "docker-entrypoint.s…"   13 minutes ago   Up 13 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   flamboyant_nash
d3a039010bf1   java:v0        "/bin/bash"               3 hours ago      Up 3 hours      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              quirky_bell
7c7f8bbb4ae7   nginx:latest   "/docker-entrypoint.…"   5 hours ago      Up 5 hours      0.0.0.0:80->80/tcp, :::80->80/tcp                      thirsty_babbage

登录mysql

[root@docker--1 ~]# docker exec -it 48fd mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.44 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

#查看库
 
mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| mysql               |
| performance_schema  |
| project_exam_system |
| sys                 |
+---------------------+
5 rows in set (0.00 sec)

#使用 project_exam_system库

mysql> use project_exam_system;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed

#查看user表中的内容

mysql> select * from user;
+-----+--------------+----------+--------+---------------------+----------+---------------------+--------+-------+
| id  | userName     | password | status | createTime          | createOr | editTime            | editOr | isDel |
+-----+--------------+----------+--------+---------------------+----------+---------------------+--------+-------+
|   1 | 21001189     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-22 22:04:44 | NULL   |     0 |
|   2 | 21001190     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
|   3 | 21001191     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
|   4 | 21001192     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
|   5 | 21001193     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
|   6 | 21001194     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 
#创建用户dd,给定密码:1

mysql> create user 'dd'@'%' identified by '1';
Query OK, 0 rows affected (0.01 sec)

#给权限
 
mysql> grant all on *.* to 'dd'@'%';
Query OK, 0 rows affected (0.00 sec)

#刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#退出
 
mysql> exit
Bye

查看容器

[root@docker--1 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
48fd8551ec83   mysql:5.7.44   "docker-entrypoint.s…"   27 minutes ago   Up 27 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   flamboyant_nash
d3a039010bf1   java:v0        "/bin/bash"               4 hours ago      Up 4 hours      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              quirky_bell
7c7f8bbb4ae7   nginx:latest   "/docker-entrypoint.…"   5 hours ago      Up 5 hours      0.0.0.0:80->80/tcp, :::80->80/tcp                      thirsty_babbage

创建目录并移动文件

#查看
[root@docker--1 ~]# ls
anaconda-ks.cfg         jdk-17_linux-x64_bin.tar.gz  Project_ExamSystem-V1.0.0.war
application.properties  mysql
docker.sh               project_exam_system

#创建目录
[root@docker--1 ~]# mkdir project_exam_system/java

#移动
[root@docker--1 ~]# mv jdk-17_linux-x64_bin.tar.gz project_exam_system/java/
[root@docker--1 ~]# mv application.properties project_exam_system/java/
[root@docker--1 ~]# mv Project_ExamSystem-V1.0.0.war project_exam_system/java/

#查看
[root@docker--1 ~]# ls
anaconda-ks.cfg  docker.sh  mysql  project_exam_system

使用tree命令查看

[root@docker--1 ~]# tree -L 3 project_exam_system/
project_exam_system/
├── java
│   ├── application.properties
│   ├── jdk-17_linux-x64_bin.tar.gz
│   └── Project_ExamSystem-V1.0.0.war
├── mysql
│   └── project_exam_system.sql
└── web
    ├── dist
    │   ├── assets
    │   ├── favicon.ico
    │   └── index.html
    └── dist.zip
 
5 directories, 7 files

解压jdk包

[root@docker--1 ~]# cd project_exam_system/java/
  
# 切换到名为 'project_exam_system/java' 的项目目录,准备进行后续操作  

[root@docker--1 java]# rz -E  

# 使用 rz 命令接收文件,-E 选项表示启用扩展模式,允许接收更大的文件  

rz waiting to receive. 
 
# 系统提示正在等待接收文件  

[root@docker--1 java]# ls  

# 列出当前目录下的文件,确认文件是否存在 
 
application.properties  jdk-17_linux-x64_bin.tar.gz  
Dockerfile              Project_ExamSystem-V1.0.0.war  

# 输出显示当前目录包含配置文件、JDK 安装包、Dockerfile 和 WAR 文件  

[root@docker--1 java]# docker build -t java:v1 .  

# 使用 Docker 构建镜像,-t 选项指定镜像名称为 'java:v1','.' 表示当前目录作为构建上下文  

[root@docker--1 java]# ls  

# 再次列出当前目录下的文件,确认构建后文件未改变  

application.properties  jdk-17_linux-x64_bin.tar.gz  
Dockerfile              Project_ExamSystem-V1.0.0.war  

[root@docker--1 java]# tar -zxvf jdk-17_linux-x64_bin.tar.gz 
  
# 解压缩 JDK 安装包,-z 表示解压缩 gzip 格式,-x 表示提取文件,-v 表示详细输出,-f 指定文件名  

[root@docker--1 java]# ls  

# 列出当前目录下的文件,确认解压后新增的目录  

application.properties  jdk-17.0.12              Project_ExamSystem-V1.0.0.war  
Dockerfile              jdk-17_linux-x64_bin.tar.gz  
# 输出显示解压后生成了 'jdk-17.0.12' 目录  

[root@docker--1 java]# mv jdk-17.0.12/ jdk  

# 将解压后的 JDK 目录重命名为 'jdk',以便于后续引用  

[root@docker--1 java]# ls  
# 列出当前目录下的文件,确认重命名后的目录  
application.properties  jdk                     Project_ExamSystem-V1.0.0.war  
Dockerfile              jdk-17_linux-x64_bin.tar.gz  
# 输出显示 'jdk' 目录已成功重命名  

[root@docker--1 java]# vim Dockerfile   
# 使用 vim 编辑器打开 Dockerfile 文件,进行配置或修改,以便于构建镜像时使用  

[root@docker--1 java]# docker build -t java:v1 .  
# 再次使用 Docker 构建镜像,确保 Dockerfile 的修改生效,-t 选项仍然指定镜像名称为 'java:v1'

编辑dockerfile

[root@docker--1 java]# vim Dockerfile   
# 使用 vim 编辑器打开 Dockerfile 文件,以便对 Docker 镜像的构建进行配置或修改  

[root@docker--1 java]# vim start.sh  
# 使用 vim 编辑器打开 start.sh 脚本文件,准备编写启动脚本  

[root@docker--1 java]# docker build -t java:v1 .  
# 使用 Docker 构建镜像,-t 选项将新镜像命名为 'java:v1','.' 表示当前目录作为构建上下文  

[+] Building 0.6s (11/11) FINISHED                                   docker:default  
# Docker 输出构建进度,表明构建已完成,耗时 0.6 秒  

 => [internal] load build definition from Dockerfile                 0.0s  
# 加载 Dockerfile 构建定义,耗时 0.0 秒  

 => => transferring dockerfile: 309B                               0.0s  
# 转移 Dockerfile 文件,文件大小 309 字节,耗时 0.0 秒  

 => [internal] load metadata for docker.io/library/centos:latest   0.0s  
# 加载使用的基础镜像 'centos:latest' 的元数据,耗时 0.0 秒  

 => [internal] load .dockerignore                                   0.0s  
# 加载 .dockerignore 文件,耗时 0.0 秒  

 => => transferring context: 2B                                     0.0s  
# 转移上下文文件,文件大小 2 字节,耗时 0.0 秒  

 => [1/7] FROM docker.io/library/centos:latest                      0.0s  
# 设置基础镜像为 'centos:latest',这个步骤没有耗时  

 => [internal] load build context                                   0.0s  
# 加载构建上下文,准备添加文件及执行命令  

 => => transferring context: 25.93kB                                0.0s  
# 转移构建上下文文件,文件大小为 25.93KB,耗时 0.0 秒  

 => CACHED [2/7] ADD application.properties /application.properties   0.0s  
# 添加 'application.properties' 文件到镜像中,已缓存该步骤,耗时 0.0 秒  

 => CACHED [3/7] ADD jdk /usr/local/jdk/                            0.0s  
# 将解压后的 JDK 目录添加到镜像的 '/usr/local/jdk/',已缓存该步骤,耗时 0.0 秒  

 => CACHED [4/7] ADD Project_ExamSystem-V1.0.0.war /Project_ExamSystem-V1.0.0.  0.0s  
# 将 WAR 文件添加到镜像中,已缓存该步骤,耗时 0.0 秒  

 => [5/7] ADD start.sh /start.sh                                    0.0s  
# 将 'start.sh' 文件添加到镜像的根目录,耗时 0.0 秒  

 => [6/7] RUN chmod -v +x /start.sh                                0.4s  
# 修改 'start.sh' 文件的权限,使其可执行,耗时 0.4 秒  

 => exporting to image                                                0.0s  
# 开始将构建的内容导出为镜像,耗时 0.0 秒  

 => => exporting layers                                             0.0s  
# 导出镜像的层,耗时 0.0 秒  

 => => writing image sha256:cbe450fc552275f01d345fcbb348099cced02d0e5d00ae4813  0.0s  
# 写入新的镜像的 SHA256 哈希值,耗时 0.0 秒  

 => => naming to docker.io/library/java:v1                            0.0s  
# 将新镜像命名为 'java:v1',并推送到本地镜像库,耗时 0.0 秒  

[root@docker--1 java]# docker run -itd -p8081:8080 java:v1  
# 使用 Docker 运行新构建的镜像 'java:v1',-itd 选项表示交互式运行(-i),以分离模式(-d)运行,-p 选项将容器的 8080 端口映射到主机的 8081 端口  
# 该命令创建并启动一个新的容器  

5fc4bd6c574f58aee7c7ad560e8f8189b94324369c54c0e11adb2b16e0921058  
# 容器运行后返回其 ID  

[root@docker--1 java]# docker ps  
# 列出当前正在运行的容器  

CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                          NAMES  
# 输出的表头,表示当前正在运行的容器每列的信息  
# CONTAINER ID: 容器的唯一标识符  
# IMAGE: 容器使用的镜像  
# COMMAND: 容器启动时执行的命令  
# CREATED: 容器创建时间  
# STATUS: 容器的当前状态  
# PORTS: 容器的端口映射信息  
# NAMES: 容器的名称  

5fc4bd6c574f   java:v1        "/start.sh /bin/bash"     12 seconds ago   Up 11 seconds   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp      kind_easley  
# 显示 'java:v1' 镜像的容器,容器 ID 是 '5fc4bd6c574f',启动后 12 秒,当前运行状态,映射了 8080 端口到主机的 8081 端口,容器名称为 'kind_easley'  

48fd8551ec83   mysql:5.7.44   "docker-entrypoint.s…"   2 hours ago      Up 2 hours      0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   flamboyant_nash  
# 显示正在运行的 MySQL 容器,使用的镜像版本为 '5.7.44',容器 ID 是 '48fd8551ec83',创建于 2 小时前,当前状态已运行 2 小时,端口映射信息及容器名称为 'flamboyant_nash'  

d3a039010bf1   java:v0        "/bin/bash"               5 hours ago      Up 5 hours      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp      quirky_bell  
# 显示运行中的 'java:v0' 容器,创建于 5 小时前,当前状态已运行 5 小时,端口映射信息及容器名称为 'quirky_bell'  

7c7f8bbb4ae7   nginx:latest   "/docker-entrypoint.…"   6 hours ago      Up 6 hours      0.0.0.0:80->80/tcp, :::80->80/tcp                      thirsty_babbage  
# 显示运行中的 'nginx' 容器,使用最新版本,创建于 6 小时前,当前状态已运行 6 小时,端口映射信息及容器名称为 'thirsty_babbage'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt QPushButton 按钮右上角增加小红点

简述 在项目里有时候应用类按钮在模块上新时&#xff0c;需要增加小红点提示。 效果图&#xff1a; 实现 实现的方法有很多 &#xff0c;下面介绍超简单的一种。 直接在按钮上贴一个 QLabel 即可。 #pragma once#include <QtWidgets/QWidget> #include "ui_paf…

宁武县乡村e镇招商引资暨产品推介会在京举办

2024年8月26日&#xff0c;宁武县乡村e镇招商引资暨产品推介会在北京市朝阳区五洲皇冠国际酒店举办。此次活动由山西省宁武县委、县政府主办&#xff0c;中国联合国采购促进会、中国商业文化研究会乡村振兴工作委员会协办&#xff0c;旨在宣传推介宁武县丰富的自然资源和农特产…

“1X”家用人形机器人:NEO Beta人形机器人,专为家庭使用而设计

1X机器人是指挪威人形机器人初创企业1X公司推出的一款名为NEO Beta的双足人形机器人原型。这款机器人专为家庭使用而设计&#xff0c;身高约1米65&#xff0c;体重30公斤&#xff0c;具有仿生设计&#xff0c;能够在人与人之间安全工作。NEO Beta采用了OpenAI的技术支持&#x…

spotbugs问题描述汉化

1 支持多语言 spotbugs自身支持问题描述的国际化&#xff0c;默认支持了英语、日语和法语。 问题描述都配置在messages.xml文件中。 (在源码中的位置&#xff1a;/spotbugs//spotbugs/etc/messages.xml) 2 多语言文件名 如果需要支持中文可以将messages.xml中的英文翻译过来。将…

Chapter 08 Vue生命周期

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 前言一、生命周期阶段二、生命周期钩子三、生命周期图示 前言 Vue.js 是一个渐进式的 JavaScript 框架&#xff0c;广泛用于构建用户界面。理解 Vue 的生命周期对于开发高效、…

基于springboot+vue的在线商城系统

基于springbootvue的商城系统 (源码L文ppt)4-056 4 系统设计 4.1 系统功能模块设计 经过分析本系统的实际需求&#xff0c;系统主要分为三个模块&#xff0c;用户、商家以及管理员&#xff0c;具体的功能模块如图4-1所示&#xff1a; 图4-1 功能模块设计图 4.2…

超声波清洗机什么牌子值得入手?好用的超声波清洗机推荐

即便身处快节奏的工作环境中&#xff0c;我们仍需重视个人卫生及日常用品的清洁维护&#xff0c;这不仅是生活质量的体现&#xff0c;更是关乎健康的基本原则。长期忽视清洁&#xff0c;灰尘积累则可能成为细菌滋生的温床&#xff0c;进而悄悄威胁我们的身体健康。因此&#xf…

使用BDT利率二叉树模型来计算期权的初始价值

Black-Derman-Toy (BDT) 模型是于1990年开发的一种用于金融市场的利率模型。这个模型是一个单因子短期利率模型&#xff0c;它假设利率遵循一个均值回归过程&#xff0c;即利率随时间趋向于回归到长期平均值。 BDT模型的关键特点包括&#xff1a; 它能够校准到初始的利率期限…

09-02 周一 Ubuntu上使用docker-compose部署elasticsearch和kibana服务

09-02 周一 Ubuntu上部署elasticsearch和kibana服务 时间版本修改人描述2024年9月2日11:13:54V0.1宋全恒新建文档 简介 由于组里需要提供一个简易的环境来部署一套服务&#xff0c;可以通过接口进行数据的存储和检索&#xff0c;因此&#xff0c;直接部署一套ES服务来充当这样…

[Linux网络]TCP三次握手和四次挥手的连接建立和断开

TCP的三次握手 第一次握手&#xff1a;客户端发送网络包&#xff0c;服务器端收到&#xff0c;证明客户端的发送能力、服务器的接收能力是正常的。第二次握手&#xff1a;服务器发送网络包&#xff0c;客户端收到&#xff0c;证明服务器端的发送能力是正常的&#xff0c;不过此…

每日一题,零基础入门FPGA——工程师在线精讲,直播预告

题目传送门&#xff1a;F学社 zzfpga.com/StudentPlatform/Sheet/QuestionBankhttp://zzfpga.com/StudentPlatform/Sheet/QuestionBank 【第Ⅰ期题目 * 5】 请使用D触发器和必要的逻辑门实现此同步时序电路&#xff0c;用Verilog语言描述。 【第Ⅰ期题目 * 4】 请设计一个0…

合宙低功耗4G模组Air780EP——产品规格书

Air780EP作为合宙通信推出的LTE Cat. 1 bis通信模块&#xff0c;基于移芯EC718P平台&#xff0c; 支持LTE 3GPP Release 14技术&#xff0c;确保数据传输的高效性和稳定性。 作为4G全网通模块&#xff0c;兼容各大运营商网络&#xff0c;提供广泛的网络覆盖和灵活性。 作为4…

驱动开发系列14 - Linux Graphics Wayland 详解

目录 一:概述 二:操作系统如何支持 Wayland 三:显卡驱动如何支持 Wayland 四:Wayland 协议介绍 一:概述 Wayland 是一种通信协议,规定了显示服务器与其客户端之间的通信,以及该协议的 C 语言库实现。使用 Wayland 协议的显示服务器称为 Wayland 合成器,因…

为什么单元测试在软件开发中很重要?

单元测试在软件开发过程中扮演着至关重要的角色&#xff0c;其重要性主要体现在以下几个方面&#xff1a; 保证代码质量&#xff1a;单元测试是对软件中的最小可测试单元——函数、方法或类进行检查和验证的过程。通过编写针对各个模块的独立测试用例&#xff0c;开发者能够确…

Python进阶之-加密库cryptography使用详解

✨前言 cryptography 库是一个强大的 Python 加密库&#xff0c;提供了对加密算法和协议的高层和低层访问。它是用来实现数据加密、签名、密钥管理等功能的。以下是一些常见用法的详解&#xff0c;帮助你理解如何使用这个库。 ✨安装 首先&#xff0c;你需要确保安装了 cryp…

经纬恒润半年报:净亏损超3亿元,研发支出增长/毛利下降

作为近年来为数不多成功IPO上市的汽车智能网联概念股&#xff0c;经纬恒润正处于「研发支出增长、毛利率下降」的阵痛期。这也反映出当下产业链的共性困难&#xff0c;车企降本、供应链白热化竞争。 本周&#xff0c;经纬恒润&#xff08;688326&#xff09;发布2024年半年报&a…

怎么才能快速提升网站在谷歌的收录?

​想让你的网站在谷歌快速收录&#xff0c;其实正常的方法都需要时间&#xff0c;无论是定期更新&#xff0c;提交网站地图&#xff0c;搞外链建设啥的&#xff0c;这些方法虽然有效&#xff0c;但见效慢。而且谷歌爬虫不会一下子抓取你所有页面&#xff0c;需要时间。如果真想…

鸿蒙Promise是什么?怎么用?面试遇到如何回答?Promise静态方法有那些?

#什么是Promise&#xff1f; Promise是用来管理异步操作的对象&#xff0c;可以获取成功&#xff08;或失败&#xff09;的结果 #Promise的状态&#xff1f; Promise 必然处于 3 种状态中的某一种&#xff0c;调用resolve,reject 的本质就是更改他的状态 3 种状态: 1. 待定&am…

Lazada商家必看:如何高效利用自养号进行产品测评

Lazada自养号测评技术是一种电商运营策略&#xff0c;通过卖家自己创建和管理买家账号&#xff0c;以模拟真实的买家行为&#xff08;如浏览、收藏、加购和下单等&#xff09;&#xff0c;从而提高产品的排名、权重和销量。以下是对Lazada自养号测评技术的详细解析&#xff1a;…

一文搞懂 JavaScript 模块化规范:CommonJS、AMD、ES6 Module

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、为什么需要模块化&#xff1f;二、早期的模块化标准2.1 CommonJS 规范2.1.1 CommonJS 简介2.1.2 CommonJS 的特性2.1.3 CommonJS 的使用示例2.1.4 CommonJS 可能出现的问题 2.2. AMD 规范2.2.1 AMD 简介2.2.2 AMD 的特性…