服務(wù)器環(huán)境部署

docker相關(guān)

docker安裝

  • 使用官方安裝腳本自動(dòng)安裝
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • 設(shè)置使用國(guó)內(nèi)鏡像源
  1. 修改或新增 /etc/docker/daemon.json
vim /etc/docker/daemon.json
  1. 添加內(nèi)容(添加三個(gè)源 阿里云,網(wǎng)易, Docker 官方中國(guó)區(qū))
{
    "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com", "http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]

}
  1. 重啟docker
systemctl restart docker.service
docker安裝mysql

參考地址 https://www.runoob.com/docker/docker-install-mysql.html

  1. 查看倉(cāng)庫(kù)MySQL版本
docker search mysql
  1. 安裝對(duì)應(yīng)版本(不指定默認(rèn)最新版)
docker pull mysql
  1. 查看鏡像
docker images
image.png
  1. 啟動(dòng)容器
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=YAFD.2020 mysql

參數(shù)說明:

-p 3306:3306 :映射容器服務(wù)的 3306 端口到宿主機(jī)的 3306 端口,外部主機(jī)可以直接通過 宿主機(jī)ip:3306 訪問到 MySQL 的服務(wù)。
MYSQL_ROOT_PASSWORD=YAFD.2020:設(shè)置 MySQL 服務(wù) root 用戶的密碼。

  1. 查看是否啟動(dòng)成功
docker ps
  1. node連接報(bào)錯(cuò)

https://www.cnblogs.com/yy-cola/p/11226924.html

 { Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by
 server; consider upgrading MySQL client

原因8.0mysql引入了caching_sha2_password模塊作為默認(rèn)身份驗(yàn)證插件,nodejs還沒有跟進(jìn)

  • 解決方法:
#  進(jìn)入容器
docker exec -it mysql bash  
# 登錄mysql
mysql -u root -p
# 授權(quán)
GRANT ALL ON *.* TO 'root'@'%';
# 刷新權(quán)限
flush privileges;
# 更新加密規(guī)則:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 更新root用戶密碼:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新
flush privileges;

docker安裝redis

參考地址 https://www.runoob.com/docker/docker-install-redis.html
https://hub.docker.com/_/redis?tab=description&page=1&ordering=last_updated
redis主從和哨兵模式 https://www.cnblogs.com/tomkluas/p/12682489.html

docker pull redis   // 拉取最新鏡像
docker images     // 查看鏡像
docker run -itd --name redis --restart always -p 6379:6379 -v /root/redis/:/usr/local/etc/redis redis   // 運(yùn)行redis
docker ps          // 查看容器運(yùn)行信息
docker exec -it redis /bin/bash  //通過 redis-cli 連接測(cè)試使用 redis 服務(wù)。
創(chuàng)建redis主從

docker安裝mongodb

https://www.runoob.com/docker/docker-install-mongodb.html
http://m.itdecent.cn/p/2181b2e27021
studiot 3T下載地址:https://studio3t.com/download/

docker pull mongo
docker run -d -p 27017:27017 -v /root/mongo/config:/data/configdb -v /root/mongo/db:/data/db --name mongo mongo --auth
$ docker exec -it mongo mongo admin
# 創(chuàng)建一個(gè)名為 admin,密碼為 123456 的用戶。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 嘗試使用上面創(chuàng)建的用戶信息進(jìn)行連接。
> db.auth('admin', '123456')
// 修改用戶密碼
db.changeUserPassword('admin','password'); 

  • 備份
mkdir /root/backup/mongodb
tar cvf /root/backup/mongodb/$(date +%Y%m%d%H%M%S).tar /root/mongo

// 還原
tar xvf /root/backup/mongodb/backup.tar -C /root/mongo
cp -r 解壓的文件 docker映射文件

Linux cp 命令
Linux tar 命令

  • 備份腳本
#!/bin/bash

LOG_DIR=/root/backup/log/mongodb
SOURCE_DIR=/root/mongo
BACKUP_DIR=/root/backup/mongodb

REMOTE_IP=192.168.1.98
REMOTE_USER=root
REMOTE_DIR=/data/opt/backup/mongodb


function log()
{
  echo "[ `date '+%Y-%m-%d %H:%M:%S'` ] $1"
}


# 備份
function main(){
    d=`date "+%Y%m%d%H%M%S"`
    fname=${BACKUP_DIR}/backup_$u0z1t8os.tgz
    log "開始備份 ${fname}"
    tar -zcf ${fname} ${SOURCE_DIR}

    #scp ${fname} $REMOTE_USER@$REMOTE_IP:$REMOTE_DIR
    #log "備份到遠(yuǎn)程成功"


    log "開始刪除7天前的備份"
    find ${BACKUP_DIR} -type f  -atime +7 |xargs -t -i rm {}
    log "刪除完畢"
}


main >> ${LOG_DIR}/backup.log  2>&1
// 每4小時(shí)備份一次
分 時(shí) 天 月 周 
 0 */4 * * * sh /root/backupMongodb.sh

docker安裝nginx

https://www.runoob.com/docker/docker-install-nginx.html
https://www.cnblogs.com/yjlch1016/archive/2019/11/24/11923695.html
https://blog.csdn.net/weixin_40461281/article/details/92586378

# 拉取Nginx官方鏡像
docker pull nginx

#先讓容器在后臺(tái)運(yùn)行,并取個(gè)別名為nginx,此時(shí)還沒有修改配置文件
docker run --name nginx -d nginx

# 查看nginx-test容器id
docker ps -a

#查看容器內(nèi)部的配置文件
docker exec nginx ls /etc/nginx

#復(fù)制容器內(nèi)部的配置文件到宿主機(jī),不用事先創(chuàng)建/root/nginx目錄
docker cp -a nginx:/etc/nginx/ /root/nginx

#進(jìn)入/root目錄
cd

#給/root/nginx目錄賦予最高權(quán)限
chmod -R 777 nginx

#刪除nginx容器,-f參數(shù)是強(qiáng)制刪除運(yùn)行中的容器
docker rm -f nginx

#重新運(yùn)行容器,并掛載配置文件,映射端口
#這樣下次就可以直接修改宿主機(jī)的配置文件,然后docker restart nginx重啟容器
docker run -p 80:80 --restart always --name nginx -v /root/nginx/:/etc/nginx/ -d nginx
docker run -d -p 80:80 --name nginx -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log  -v /root/nginx/:/etc/nginx/ -d nginx

docker run -d -p 80:80 -p 443:443 --name nginx --restart always -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx:/etc/nginx -v /root/nginx/logs:/var/log/nginx -v /root/nginx/ssl:/etc/nginx/ssl nginx


#開放宿主機(jī)防火墻的80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

#訪問
瀏覽器輸入主機(jī)ip

docker 安裝Jenkins

# 拉取鏡像
docker pull jenkins/jenkins   // 第一個(gè)官方鏡像安裝插件有可能會(huì)報(bào)錯(cuò)    
# 啟動(dòng)鏡像

#查看容器內(nèi)部的配置文件
docker exec jenkins ls /var/jenkins_home/

#復(fù)制容器內(nèi)部的配置文件到宿主機(jī),不用事先創(chuàng)建/root/nginx目錄
docker cp -a jenkins:/var/jenkins_home/ /root/jenkins

#給/root/nginx目錄賦予最高權(quán)限
chmod -R 777 jenkins

#刪除容器,-f參數(shù)是強(qiáng)制刪除運(yùn)行中的容器
docker rm -f jenkins

#重新運(yùn)行容器,并掛載配置文件,映射端口
#這樣下次就可以直接修改宿主機(jī)的配置文件,然后docker restart jenkins重啟容器
docker run -itd -p 8080:8080 -p 50000:50000  --restart always --name jenkins --privileged=true  -v /root/jenkins:/var/jenkins_home/ jenkins/jenkins                  
Jenkins部署node項(xiàng)目
  • git拉取源碼失敗 : 使用用戶名密碼方式認(rèn)證的時(shí)候URL地址要用https方式而不是ssh。


    image.png
  • yarn安裝
npm install -g yarn

linux 安裝nvm,通過nvm安裝node

https://github.com/cnpm/nvm

更換下載源(默認(rèn)是從 http://nodejs.org/dist/ 下載的, 國(guó)外服務(wù)器, 必然很慢):shell下直接運(yùn)行:

NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

npm國(guó)內(nèi)源 https://blog.csdn.net/chenbingzhao/article/details/110092280

臨時(shí)使用npm --registry https://registry.npm.taobao.org install express
持久使用npm config set registry https://registry.npm.taobao.org

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc

nvm list   // 查看當(dāng)前版本
nvm  // 查看所有命令
 nvm ls-remote  // 查看所有可安裝版本
nvm install version  // 安裝對(duì)應(yīng)的版本

版本管理工具

禪道

docker鏡像地址

docker pull idoop/zentao

mkdir -p /data/zbox && \
docker run -d -p 8081:80 -p 3307:3306 \
        -e ADMINER_USER="root" -e ADMINER_PASSWD="123456" \
        -e BIND_ADDRESS="false" \
        -v /data/zbox/:/opt/zbox/ \
        --add-host smtp.764162156.qq.com:163.177.90.125 \
        --name zentao-server \
        idoop/zentao:latest
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容