项目部署与上线

docker

镜像,容器,仓库的三者关系

常用命令

docker操作

1
docker pull centos:

dockerfile和阿里云

制作镜像 (使用时删掉//后的备注

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 第一个阶段: 拉取node镜像来打包React项目
FROM node:14 as build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY jsconfig.json ./
COPY craco.config.js ./
COPY public public/
COPY src src/
RUN npm run build

# 第二个阶段: 创建并运行Ngnix服务器,并且把打包好的文件复制粘贴到服务器文件夹中
FROM nginx:alpine
COPY --from=build /app/build/ /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

----------------------------------------------------------------------
# 第一个阶段: 拉取node镜像来打包React项目
## 拉取node镜像 版本14 命名为build
FROM node:14 as build
## 设置docker命令运行目录
WORKDIR /app
## 复制对应文件到app文件夹中 app/
COPY package*.json ./
## 安装项目依赖
RUN npm install
## 复制对应文件到app文件夹中 app/
COPY tsconfig.json ./
## 复制public文件夹并创建public文件夹
COPY public public/
## 复制src文件夹并创建src文件夹
COPY src src/
## 构建react项目
RUN npm run build

# 第二个阶段: 创建并运行Ngnix服务器,并且把打包好的文件复制粘贴到服务器文件夹中
## 拉取nginx服务器镜像 :执行版本
FROM nginx:alpine
## 将第一阶段通过npm run build构建好的react项目复制到nginx服务器镜像中
COPY --from=build /app/build/ /usr/share/nginx/html
## 暴露nginx服务器端口
EXPOSE 80
## 使用CMD命令来启动nginx命令
CMD ["nginx", "-g", "daemon off;"]
————————————————
版权声明:本文为CSDN博主「陈坚泓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42752574/article/details/122594056
  1. 在此文件夹的cmd命令窗口输入 docker build -t react-web . // (react-web)是自己取的镜像名 构建react-web镜像

  2. 然后docker images 查看当前所有的镜像

  3. docker run -d -p 12231:80 react-web 将nginx服务器的80端口映射给电脑的12231端口

  4. docker ps 查看运行的容器

  5. 可以在本机上输入localhost:12231进入查看项目了

阿里云操作

https://www.acwing.com/blog/content/20977/

1.创建云服务器ECS实例
2.点击实例列表中的远程连接,方式选Workbench远程连接然后输入密码
3.通过以下四个命令添加yum源

4.安装docker yum install docker-io -y
5.启动docker systemctl start docker
6.查看安装结果docker info
7.启动阿里云的容器镜像服务

先开启阿里云容器镜像服务,然后进入镜像加速器,按照指引把命令复制到终端运行(然后docker加速器就添加成功了)

8.接下里就是本课第五步,本地构建课程实战项目的docker镜像
打开命令行,cd 到项目文件夹
使用命令docker build -t react-web . ,然后镜像就创建成功了
运行docker images查看一下

9.课程的第六步:在阿里云镜像服务中创建我们的私人docker镜像仓库
打开阿里云容器镜像服务,点击镜像仓库,点击创建镜像仓库(代码源选本地仓库),然后点击仓库进入仓库的操作文档

首先复制第一条命令登录仓库,然后填写阿里云登陆密码
然后复制第3命令去推送镜像,其中命令里的版本号是自定义的(比如1.0.0),ImageId可以在docker images里找到。

在镜像仓库文档页面左侧点击镜像版本,就可以看到刚上传好的镜像了
接下来就要在ECS服务器上部署这个docker镜像了,所以到仓库基本信息页复制第2条命令
拉取成功之后就要部署这个镜像了docker run -d -p 12231:80 第2里的命令pull后面跟着的仓库地址
然后docker就运行起来了,运行docker ps查看一下状态

10.由于ECS服务器的实例安全策略,我们暂时没法从外部访问项目的端口12231,所以我们需要配置一下

打开ECS实例列表,点击实例名称,在基本信息栏中找到配置安全组规则,然后在普通安全组中找到配置规则,点击手动添加,在端口范围目的中输入12231/12231,授权对象源输入0.0.0.0/0【表示不对外部 ip 做任何显示】

然后等待几分钟,等安全策略规则响应,然后回到实例列表,复制ECS实例公网地址+端口号:12231到浏览器