docker搭建devops(腾讯云轻量应用服务器)教程
作者:Zephyr
这篇文章主要为大家介绍了docker搭建devops(腾讯云轻量应用服务器)教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
安装环境
安装 Docker CE
手上闲置了一台腾讯云轻量应用服务器,最近打算用docker部署一套轻量化的devops流程,用于测试自己的个人项目。
查看环境
cat /etc/redhat-release // CentOS Linux release 7.6.1810 (Core)
安装所需软件包
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
安装 docker CE
sudo yum install docker-ce docker-ce-cli containerd.io
启动 docker
// 启动 docker 服务 sudo systemctl start docker or sudo systemctl start docker.service // 设置docker 自启动 sudo systemctl enable docker.service // 关闭 docker 服务 sudo systemctl stop docker.service // 查看 docker 服务状态 sudo systemctl status docker.service
docker 常用指令
-i:容器的标准输入保持打开 -t:让docker分配一个伪终端并绑定到容器的标准输入上 -p : 端口映射 格式为[主机端口:容器端口] -d : 后台模式运行 -name : 给容器的起一个名字 -v:挂载主机的目录 #删除指定名称镜像 docker rmi hello-world #删除所有镜像 docker rmi -f $(docker images)
创建docker网络
// 不指定网络驱动时默认创建的bridge网络 docker network create default_network // 查看网络内部信息 docker network inspect default_network // 列所有列表的网络 docker network ls // 移除指定的网络 docker network rm default_network
安装 MongoDB
从 docker hub 下载 mongodb 官方镜像
docker pull mongo
创建 mongodb 容器
docker run --name my-mongo -p 27017:27017 -d mongo --auth // 如果加需要验证就加--auth,不需要验证,就去掉。默认mongodb是不使用用户认证
查看 mongo 的容器 id
docker ps -a
进入容器设置用户
// 逐行执行 docker exec -it 容器id /bin/bash mongo use admin db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]}) exit
创建成功,后续操作都需要用户认证
Successfully added user: { "user" : "root", "roles" : [ { "role" : "root", "db" : "admin" } ] }
测试 mongo
mongo 宿主机ip/admin -utest -p
指定 mongodb 配置文件
docker run --name some-mongo -d mongo --configsvr
安装 NodeJS
启动 docker 服务
systemctl start docker
拉取 node 镜像
docker pull node
确认下 node 是否拉取成功
docker images
启动镜像
docker run -i -t node /bin/bash
安装node
//将 docker 的 3000 端口映射到 tcp 的 3000 并分配给 node docker run --name node-app -idt -p 3000:3000 node /bin/bash //映射本地目录到 docker docker run -it -p 3000:3000 -v /home/unishop:/home/unishop --privileged=true node /bin/bash docker run -it -d -p 3000:3000 -p 3001:3001 -v /home/code:/home/code --privileged=true --name node node /bin/bash docker run --name node --network main-net -it -d -p 3000:4000 -v /home/node:/home/node --privileged=true node /bin/bash
查看 node 版本号
node -v // v18.17.1
安装 pm2
npm i pm2 -g // + pm2@5.3.0
安装 Nginx
拉取官方镜像
docker pull nginx
nginx 常用指令
// 启动 nginx 容器 docker run -d --name nginx nginx // 查看 nginx 实例进程 docker top nginx // 进入 nginx 容器 docker exec -it nginx bash // 杀死 nginx 容器实例 docker kill -s KILL // 重启 nginx 容器实例 docker restart nginx // 移除 nginx 容器实例 docker rm -f -v 容器id
基于 docker run -d --name nginx nginx 方法启动 nginx 后,docker 容器并没有对外暴露访问 nginx 的端口,即无法通过当前主机外部浏览器器访问 nginx。使用如下命令来指定 docker 容器中 nginx 实例对外开放的端口。
docker run --name nginx -d -p 80:80 nginx
安装Git
yum install git
验证
git --version git version 1.8.3.1
配置
升级脚本
首先在项目根目录创建rebuild.sh文件,映射容器目录,指定node版本、源和命令。
在项目创建devops目录。
docker run --rm -v /likemusic/likemusic_h5:/likemusic_h5 -w /likemusic_h5 node:16.13.0 npm --registry https://registry.npm.taobao.org install docker run --rm -v /likemusic/likemusic_h5:/likemusic_h5 -w /likemusic_h5 node:16.13.0 npm run build cd /likemusic/likemusic/devops docker-compose restart
更新代码
使用git将代码拉至服务器。
git pull xxx
docker-compose
创建docker-compose目录配置文件。
version: '2' services: web: image: openjdk restart: always ports: - 8080:8080 container_name: likemusic-h5 volumes: - ../:/likemusic working_dir: /likemusic command: java --add-opens java.base/java.lang=ALL-UNNAMED -jar ./ruoyi-admin/target/ruoyi-admin.jar environment: TZ: Asia/Shanghai browser: image: nginx restart: always ports: - 80:80 - 443:443 container_name: likemusic-nginx volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./certs:/etc/nginx/certs - /likemusic/likemusic/ruoyi-ui/dist:/usr/share/nginx/html/likemusic/ - /likemusic/likemusic_h5/dist:/usr/share/nginx/html/likemusic_pc/ - /likemusic/like_music_mini_web/dist:/usr/share/nginx/html/like_music_mini_web/ - /likemusic/likemusic/wechat-file/TMOTc54Vrs.txt:/usr/share/nginx/html/wechat-file/TMOTc54Vrs.txt
nginx
创建nginx配置文件。
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; client_max_body_size 100m; gzip_static on; gzip_proxied any; server { listen 80; location / { alias /usr/share/nginx/html/likemusic_pc/; try_files $uri $uri/ /likemusic_pc/index.html /index.html; index index.html index.htm; autoindex on; } location /likemusic-manager { alias /usr/share/nginx/html/likemusic/; try_files $uri $uri/ /likemusic/index.html /index.html; index index.html index.htm; autoindex on; } location /like_music_mini_web { alias /usr/share/nginx/html/like_music_mini_web/; try_files $uri $uri/ /like_music_mini_web/index.html /index.html; index index.html index.htm; autoindex on; } location /likemusic-prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://tingdong.cn:8080/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /TMOTc54Vrs.txt { alias /usr/share/nginx/html/wechat-file/TMOTc54Vrs.txt; try_files $uri $uri/ /index.html; index index.html index.htm; autoindex on; } } server { server_name manager.tingdong.cn; listen 80; location / { alias /usr/share/nginx/html/likemusic/; try_files $uri $uri/ /likemusic/index.html /index.html; index index.html index.htm; autoindex on; } location /likemusic-prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://172.27.226.102:8080/; } location = /50x.html { root html; } } }
执行
只需要一行代码即可执行部署。
./rebuild-h5.sh
执行成功。
以上就是docker搭建devops(腾讯云轻量应用服务器)教程的详细内容,更多关于docker搭建devops的资料请关注脚本之家其它相关文章!