docker搭建devops(騰訊云輕量應(yīng)用服務(wù)器)教程
安裝環(huán)境
安裝 Docker CE

手上閑置了一臺(tái)騰訊云輕量應(yīng)用服務(wù)器,最近打算用docker部署一套輕量化的devops流程,用于測(cè)試自己的個(gè)人項(xiàng)目。
查看環(huán)境
cat /etc/redhat-release // CentOS Linux release 7.6.1810 (Core)
安裝所需軟件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2設(shè)置穩(wěn)定的存儲(chǔ)庫
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
啟動(dòng) docker
// 啟動(dòng) docker 服務(wù) sudo systemctl start docker or sudo systemctl start docker.service // 設(shè)置docker 自啟動(dòng) sudo systemctl enable docker.service // 關(guān)閉 docker 服務(wù) sudo systemctl stop docker.service // 查看 docker 服務(wù)狀態(tài) sudo systemctl status docker.service
docker 常用指令
-i:容器的標(biāo)準(zhǔn)輸入保持打開 -t:讓docker分配一個(gè)偽終端并綁定到容器的標(biāo)準(zhǔn)輸入上 -p : 端口映射 格式為[主機(jī)端口:容器端口] -d : 后臺(tái)模式運(yùn)行 -name : 給容器的起一個(gè)名字 -v:掛載主機(jī)的目錄 #刪除指定名稱鏡像 docker rmi hello-world #刪除所有鏡像 docker rmi -f $(docker images)
創(chuàng)建docker網(wǎng)絡(luò)
// 不指定網(wǎng)絡(luò)驅(qū)動(dòng)時(shí)默認(rèn)創(chuàng)建的bridge網(wǎng)絡(luò) docker network create default_network // 查看網(wǎng)絡(luò)內(nèi)部信息 docker network inspect default_network // 列所有列表的網(wǎng)絡(luò) docker network ls // 移除指定的網(wǎng)絡(luò) docker network rm default_network
安裝 MongoDB
從 docker hub 下載 mongodb 官方鏡像
docker pull mongo
創(chuàng)建 mongodb 容器
docker run --name my-mongo -p 27017:27017 -d mongo --auth // 如果加需要驗(yàn)證就加--auth,不需要驗(yàn)證,就去掉。默認(rèn)mongodb是不使用用戶認(rèn)證
查看 mongo 的容器 id
docker ps -a
進(jìn)入容器設(shè)置用戶
// 逐行執(zhí)行
docker exec -it 容器id /bin/bash
mongo
use admin
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
exit創(chuàng)建成功,后續(xù)操作都需要用戶認(rèn)證
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}測(cè)試 mongo
mongo 宿主機(jī)ip/admin -utest -p
指定 mongodb 配置文件
docker run --name some-mongo -d mongo --configsvr
安裝 NodeJS
啟動(dòng) docker 服務(wù)
systemctl start docker
拉取 node 鏡像
docker pull node
確認(rèn)下 node 是否拉取成功
docker images
啟動(dòng)鏡像
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 版本號(hào)
node -v // v18.17.1
安裝 pm2
npm i pm2 -g // + pm2@5.3.0
安裝 Nginx
拉取官方鏡像
docker pull nginx
nginx 常用指令
// 啟動(dòng) nginx 容器 docker run -d --name nginx nginx // 查看 nginx 實(shí)例進(jìn)程 docker top nginx // 進(jìn)入 nginx 容器 docker exec -it nginx bash // 殺死 nginx 容器實(shí)例 docker kill -s KILL // 重啟 nginx 容器實(shí)例 docker restart nginx // 移除 nginx 容器實(shí)例 docker rm -f -v 容器id
基于 docker run -d --name nginx nginx 方法啟動(dòng) nginx 后,docker 容器并沒有對(duì)外暴露訪問 nginx 的端口,即無法通過當(dāng)前主機(jī)外部瀏覽器器訪問 nginx。使用如下命令來指定 docker 容器中 nginx 實(shí)例對(duì)外開放的端口。
docker run --name nginx -d -p 80:80 nginx
安裝Git
yum install git
驗(yàn)證
git --version git version 1.8.3.1
配置
升級(jí)腳本
首先在項(xiàng)目根目錄創(chuàng)建rebuild.sh文件,映射容器目錄,指定node版本、源和命令。
在項(xiàng)目創(chuàng)建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將代碼拉至服務(wù)器。
git pull xxx
docker-compose
創(chuàng)建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.txtnginx
創(chuàng)建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;
}
}
}執(zhí)行
只需要一行代碼即可執(zhí)行部署。
./rebuild-h5.sh
執(zhí)行成功。
以上就是docker搭建devops(騰訊云輕量應(yīng)用服務(wù)器)教程的詳細(xì)內(nèi)容,更多關(guān)于docker搭建devops的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker中Dockerfile之容器中運(yùn)行MyEclipse搭建的JavaWeb項(xiàng)目
本篇文章主要介紹了Docker中Dockerfile之容器中運(yùn)行MyEclipse搭建的JavaWeb項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
解決docker容器與宿主機(jī)相差8小時(shí)的問題
使用docker-compose部署時(shí),在輸出的日志以及相關(guān)事件校驗(yàn)及輸出時(shí),導(dǎo)致事件與現(xiàn)實(shí)相差8小時(shí)。糾結(jié)怎么回事呢?下面小編給大家分享下解決docker容器與宿主機(jī)相差8小時(shí)的問題,一起看看吧2021-09-09
Docker搭建prometheus(普羅米修斯)的方法步驟
phometheus:當(dāng)前一套非常流行的開源監(jiān)控和報(bào)警系統(tǒng),本文主要介紹了Docker搭建prometheus(普羅米修斯)的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
docker沒有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問題以及排查方式
這篇文章主要介紹了docker沒有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問題以及排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

