docker安装Nginx镜像并部署项目

安装 Docker Engine-Community

1. 使用 Docker 仓库进行安装

在新主机上首次安装 Docker Engine-Community 之前，需要设置 Docker 仓库。之后，您可以从仓库安装和更新 Docker

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ，并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

Copy
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

使用以下命令来设置稳定的仓库。

Copy
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

2. 安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd，或者转到下一步安装特定版本 如果提示你是否接受密钥 选择是

Copy
sudo yum install docker-ce docker-ce-cli containerd.io

3. 启动 docker

Copy
sudo systemctl start docker

4. 通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

Copy
sudo docker run hello-worldv

安装 nginx

1. 查看官方仓库镜像

Copy
docker search nginx

2. 拉取镜像

Copy
docker pull nginx

3. 查看镜像

Copy
docker images

xxxxxxxxxx # 复制 copy 路径 \ 文件名 路径 \ 文件名 #移动 move 路径 \ 文件名 路径 \ 文件名 PowerShell

4. 启动 nginx 镜像

这里的 —name nginx 可要可不要 这是给 nginx 命名

Copy
docker run -d -p 8080:80 --name nginx-8080 nginx

5. 访问网页端口

公安网服务器 ip 加上 8080 访问就可以得到

如果到这一步 六浏览器没有打开以下内容，就是你的服务器没有开放 8080 端口

我这里是阿里云 在安全组开发 8080 端口即可

6. nginx 关闭 / 启动

Copy
#关闭
docker stop nginx-8080 # 按照我的方法在上面给nginx命名了
docker stop id # 这里是没有命名nginx 需要用docker ps 查看已经启动的镜像 拿到nginx的id 来关闭nginx

#启动
docker restart nginx-8080 # 这里也一样 没有命名 就需要去拿 nginx 的id

安装 git 并拉取代码

安装

Copy
yum install -y git

# 检查是否出现版本号 出现则安装成功
git version

git 配置

Copy
# 配置一个用于提交代码的用户，输入命令
git config --global user.name "Your Name"

#配置一个用户邮箱，输入命令
git config --global user.email "email@example.com"

#生成公钥和私钥，输入命令后一路回车即可
ssh-keygen -t rsa -C "youremail@example.com"

#查看公钥和私钥
cat /root/.ssh/id_rsa.pub

一下就是密钥，复制它

打开 github

然后就可以在服务器 拉取代码了

Copy
git clone 项目地址

CentOS 安装 nvm

可以通过curl或者 wget 进行安装，命令如下

Copy
#curl

curl -o- [https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh](https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh) | bash

#wget

wget -qO- [https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh](https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh) | bash

安装完后，如果是用 xshell 连远程主机的话，先重连一次，不然会发现提示找不到 nvm 命令

可能出现依旧提示找不到 nvm 命令，那么请使用 source 命令，如下

Copy
source ~/.bashrc

#如果是zsh的话

source ~/.zshrc

到这里执行 nvm 看看是否安装成功

安装 yarn

Copy
npm install yarn -g

项目打包，部署上线

正常 git 拉取项目下来，执行以下命令

Copy
git clone ... # 拉取远程仓库项目

yarn # 安装项目包

yarn build # 打包项目 会生成一个dist文件

先把 docker 容器停掉

Copy
docker ps # 查看在运行的 nginx 依次停止

# 一定要在项目根目录下面执行命令 $PWD代表当前路径
docker run -d -p 8080:80 -v $PWD/dist:/usr/share/nginx/html nginx

docker ps # 查看nginx是否启动

这时候再去访问项目 ip 就可以成功访问到了

脚本简化部署命令

这时候在每次写代码都会去执行 关闭容器 pull 代码 执行启动命令会很麻烦 在项目的根目录下创建一个 文件名 start.sh

Copy

# start.sh 启动命令 sh start.sh

git pull

yarn --registry=https://registry.npm.taobao.org/ && yarn build

#删除容器
docker rm -f xiaopy &> /dev/null

#启动容器
docker run -d --restart=on-failure:5\
-p 8080:80 \
-v $PWD/dist:/usr/share/nginx/html \
--name xiaopy nginx