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://0p9pn5mo.mirror.aliyuncs.com"]
}
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
-
进入容器内操作
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 国际许可协议 进行许可。