docker相關(guān)
docker安裝
- 使用官方安裝腳本自動安裝
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 設(shè)置使用國內(nèi)鏡像源
- 修改或新增 /etc/docker/daemon.json
vim /etc/docker/daemon.json
- 添加內(nèi)容(添加三個源 阿里云钝鸽,網(wǎng)易娃承, Docker 官方中國區(qū))
{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com", "http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]
}
- 重啟docker
systemctl restart docker.service
docker安裝mysql
參考地址 https://www.runoob.com/docker/docker-install-mysql.html
- 查看倉庫MySQL版本
docker search mysql
- 安裝對應(yīng)版本(不指定默認(rèn)最新版)
docker pull mysql
- 查看鏡像
docker images
- 啟動容器
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 用戶的密碼闷袒。
- 查看是否啟動成功
docker ps
- node連接報(bào)錯
{ 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 連接測試使用 redis 服務(wù)悟泵。
創(chuàng)建redis主從
docker安裝mongodb
https://www.runoob.com/docker/docker-install-mongodb.html
http://www.reibang.com/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)建一個名為 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映射文件
- 備份腳本
#!/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_$n7jzrt7.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
- 定時(shí)任務(wù)
https://www.cnblogs.com/zhuyeshen/p/12073618.html
// 每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
#先讓容器在后臺運(yùn)行跃须,并取個別名為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 // 第一個官方鏡像安裝插件有可能會報(bào)錯
# 啟動鏡像
#查看容器內(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。
- yarn安裝
npm install -g yarn
linux 安裝nvm,通過nvm安裝node
更換下載源(默認(rèn)是從 http://nodejs.org/dist/ 下載的, 國外服務(wù)器, 必然很慢):shell下直接運(yùn)行:
NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
npm國內(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 // 安裝對應(yīng)的版本
版本管理工具
禪道
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