赞
踩
分享一下我在搭建博客的过程中,服务器的搭建到项目打包、部署上线的过程,这篇文章讲的是centos安装docker,docker下配置、并运行vue nuxt的srr服务端渲染项目、后台vue-element-admin项目、mysql数据库、后端springBoot jar包项目以及nginx服务的容器、镜像。推荐使用termius,可以去我的公众号输入termius获取破解版(win+mac),需要termius详细破解步骤的可以看我写的另一篇文章:https://baijiahao.baidu.com/builder/preview/s?id=1740108535112836052
好了,废话不多说,开始正题。
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果你的服务器有旧版的,记得先删除
- sudo yum remove docker \
- docker-client \
- docker-client-latest \
- docker-common \
- docker-latest \
- docker-latest-logrotate \
- docker-logrotate \
- docker-engine
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
- sudo yum install -y yum-utils \
- device-mapper-persistent-data \
- lvm2
使用以下命令来设置稳定的仓库。
- sudo yum-config-manager \
- --add-repo \
- https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
- sudo systemctl restart docker // 启动docker
- docker version // 查看docker版本
有client和service两个模块说明安装成功
- // 删除安装包
- sudo yum remove docker-ce
- // 删除镜像、容器、配置文件等内容
- sudo rm -rf /var/lib/docker
Tips: 如果需要看nginx.conf配置请移步到https://blog.csdn.net/weixin_41863539/article/details/126057525
docker pull nginx:latest
- mkdir -p /nginx/conf
- mkdir -p /nginx/logs
- mkdir -p /nginx/html
- mkdir -p /nginx/cert
- // 创建nginx.conf文件
- cd /nginx
- vim nginx.conf
- cd /nginx
-
- docker run -d --name nginx \
- --restart=always \
- -v $PWD/nginx.conf:/etc/nginx/nginx.conf \
- -v $PWD/logs/:/var/log/nginx/ \
- -v $PWD/html/:/usr/share/nginx/html/ \
- -v $PWD/cert/:/etc/nginx/cert/ \
- -p 443:443 \
- -p 80:80 \
- -p 8100-8300:8100-8300 \
- nginx
上面的意思:
指你根目录,PWD = /nginx
$PWD那边指你的服务器目录,:后面的是指映射到docker下的目录
docker run:在docker中启动一个容器实例
-v $PWD/nginx.conf:/etc/nginx/nginx.conf \:将容器/etc/nginx/nginx.conf目录下的数据,备份到主机的 /nginx/nginx.conf目录下,-v同理,不一一举例了
-p 80:80:容器与主机映射端口为,开放nginx端口,记得在腾讯云或者阿里云上开放防火墙端口,其他-p同理
--name nginx:容器运行后的名称
nginx:需要运行的容器名称
- docker restart nginx
- docker ps
- // stop、rm你的镜像名字或者CONTAINER ID
- docker stop nginx
- docker rm nginx
docker pull mysql:latest
- sudo docker run -p 3306:3306 \
- --name mysql \
- -v /mysql/log:/var/log/mysql \
- -v /mysql/data:/var/lib/mysql \
- -v /mysql/conf:/etc/mysql/conf.d \
- -e MYSQL_ROOT_PASSWORD=123456 \
- --privileged=true -d mysql \
上面的意思:
docker run:在docker中启动一个容器实例
-p 3306:3306:容器与主机映射端口为,主机3306,容器3306
--name mysql:容器运行后的名称
-v /mysql/log:/var/log/mysql:将容器/var/log/mysql目录下的数据,备份到主机的 /mysql/log目录下,-v同理,不一一举例了
-e MYSQL_ROOT_PASSWORD=123456:设置当前mysql实例的密码为root
mysql:需要运行的容器名称
- docker restart mysql
- docker ps
- docker stop mysql
- docker rm mysql
- docker pull node:latest
- node -v
- npm -v
- npm install --global yarn
- mkdir -p /nuxt/src
- cd /nuxt
- vim Dockerfile
- [root@VM-12-15-centos blog]# cat Dockerfile
- FROM node
- # ENV NODE_ENV=test
- ENV HOST 0.0.0.0
- EXPOSE 80
- WORKDIR /nuxt
-
- COPY ./src/package*.json ./
- RUN yarn
- COPY ./src/ .
- CMD [ "yarn", "start" ]
上面的意思:
src下放的是你nuxt项目build后的东西
必须是要放这4个
退出编辑并保存 :wq!
退出编辑并不保存 :q!
- cd /nuxt
-
- docker build --no-cache -t nuxt-demo -f Dockerfile .
-
- docker stop nuxt-demo
-
- docker rm nuxt-demo
-
- docker run --name nuxt-demo \
- -p 8080:80 nuxt-demo \
先把jdk8包(alpine-oraclejdk8.tar)放到服务器目录上,需要的请去本公众号 安哥说前端 回复 docker-jdk8包 领取。
- cd /nginx/html/spring-boot
- docker load -i alpine-oraclejdk8.tar
- [root@VM-12-15-centos spring-boot]# vim Dockerfile
- # 基础镜像
- FROM frolvlad/alpine-oraclejdk8:slim
- # 创建变量,供外部传参
- ARG FILENAME='blog'
- # 创建环境变量,取值所传入参数
- ENV MODULENAME ${FILENAME}
- # 开放容器对外端口
- EXPOSE 7020
- # 在容器下创建目录
- RUN mkdir -p /opt/application/${FILENAME}
- # 将本地压缩包复制解压到容器下新建目录
- ADD *.jar /opt/application/${FILENAME}/blog.jar
- # 指定工作目录
- WORKDIR /opt/application/${FILENAME}
- # 配置容器启动命令,即启动后台服务
- CMD ["java","-jar","./blog.jar"]
退出编辑并保存 :wq!
退出编辑并不保存 :q!
- cd /nginx/html/spring-boot
- docker stop blog-spring-boot
- docker rm blog-spring-boot
- docker rmi blog-jdk8-spring-boot-jar
- docker build --no-cache -t blog-jdk8-spring-boot-jar -f Dockerfile .
- docker run -it -d --name blog-spring-boot \
- -p 7020:7020 \
- -v /nginx/html/spring-boot/img-log:/opt/application/blog/logs/ \
- blog-jdk8-spring-boot-jar
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。