docker相关模板
安装 docker
一键安装命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装 docker compose
参考链接:Install the Compose standalone
curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
#使用加速服务
curl -SL https://fastgit.xxcheng.cn/https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
#放开读写权限
chmod +x /usr/local/bin/docker-compose
#检查安装状态
docker-compose --version
#卸载命令
rm /usr/local/bin/docker-compose
镜像加速
使用上海交大镜像站
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.sjtug.sjtu.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
mysql 实例
创建数据库容器卷文件夹,用于迁移和持久化
mkdir -p /app/mysql/
运行命令
docker run -d --restart=always --privileged=true \
-p 3306:3306 \
-v /app/mysql/log:/var/log/mysql \
-v /app/mysql/data:/var/lib/mysql \
-v /app/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql:5.7
8 版本 8.3.0
进入容器内操作
docker exec -it mysql bash
mysql
是容器ID或容器名称
查看容器卷
一步到位代码
docker run -d --restart=always -p 3306:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
相关注意点
- 务必注意端口和容器卷
-p 外部端口:内部端口
- 如有多个mysql实例,记得修改命名
Redis 实例
创建数据库容器卷文件夹,用于迁移和持久化
mkdir -p /app/redis
下载默认配置文件
wget https://cdn-static.xxcheng.cn/static/blog/images/2023/04/01/1cfcf0812316aa19b2edcd165ced7cb6.conf -O /app/redis/redis.conf
修改默认配置文件
bind 0.0.0.0 #注释掉这部分,使redis可以外部访问
protected-mode yes # 保护模式
daemonize no #用守护线程的方式启动,这里是通过docker部署,所以选择no
#必须设置为no,否则会与docker冲突
requirepass 你的密码 #给redis设置密码
运行命令
docker run -d --privileged=true --restart always \
-p 6379:6379 \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
--name redis \
redis redis-server /etc/redis/redis.conf --appendonly yes
MongoDB 实例
创建数据库容器卷文件夹,用于迁移和持久化
mkdir -p /app/mongo
运行命令
docker run --name mongo -d --privileged=true --restart always \
-p 27017:27017 \
-v /app/mongo/db:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo --auth
进入容器
docker exec -it mongo /bin/bash
添加管理员账号
mongo // 进入cli
use admin //进入到admin数据库
//创建用户,user后跟数据库账号账户名,pwd 后跟账户密码,换成你自己的。db.createUser({ user:'root',pwd:'root',roles:[ { role:'root', db: 'admin'}]});
在容器内安装vim
,修改配置
#更新源
apt-get update
# 安装 vim
apt-get install vim
# 修改 mongo 配置文件
vim /etc/mongod.conf.orig
修改配置
1.确保注释掉`# bindIp: 127.0.0.1` 或者改成`bindIp: 0.0.0.0` 即可开启远程连接
2.开启权限认证
security:
authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启
连接
参考链接
基于角色的权限说明
-
数据库用户角色
- read: 只读数据权限
- readWrite:学些数据权限
-
数据库管理角色
- dbAdmin: 在当前db中执行管理操作的权限
- dbOwner: 在当前db中执行任意操作
- userADmin: 在当前db中管理user的权限
-
备份和还原角色
- backup
- restore
-
跨库角色
- readAnyDatabase: 在所有数据库上都有读取数据的权限
- readWriteAnyDatabase: 在所有数据库上都有读写数据的权限
- userAdminAnyDatabase: 在所有数据库上都有管理user的权限
- dbAdminAnyDatabase: 管理所有数据库的权限
-
集群管理
- clusterAdmin: 管理机器的最高权限
- clusterManager: 管理和监控集群的权限
- clusterMonitor: 监控集群的权限
- hostManager: 管理Server
-
超级权限
- root: 超级用户
Nginx 实例
创建数据库容器卷文件夹,用于迁移和持久化
mkdir -p /app/nginx
下载nginx.conf
默认配置到/app/nginx/nginx.conf
wget https://cdn-static.xxcheng.cn/static/blog/images/2023/04/02/d6fadc5b828cb14e25ccf439c1877c53.conf -O /app/nginx/nginx.conf
下载index.html
默认配置到/app/nginx/html/index.html
mkdir -p /app/nginx/html && wget https://cdn-static.xxcheng.cn/static/blog/images/2023/04/02/8cde8feac6060f7151aed6cfba8b9b04.html -O /app/nginx/html/index.html
下载default.conf
默认配置到/app/nginx/conf.d/default.conf
mkdir -p /app/nginx/conf.d && wget https://cdn-static.xxcheng.cn/static/blog/images/2023/04/02/7e67974f96b8ef5cf718da2f6175d610.conf -O /app/nginx/conf.d/default.conf
执行命令
docker run --name=nginx -d \
-p 8080:80 \
-p 8443:443 \
--privileged=true --restart always \
-v /app/nginx/conf.d:/etc/nginx/conf.d \
-v /app/nginx/html:/usr/share/nginx/html \
-v /app/nginx/logs:/var/log/nginx \
-v /app/nginx/www:/www \
-v /app/nginx/nginx.conf:/etc/nginx/nginx.conf \
nginx
参考链接
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。