常用docker 配置2023
https://docs.docker.com/engine/install/ubuntu/
安装 Docker 引擎
编辑配置文件
/mysql/conf/my.cnf
[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#开启查询缓存
explicit_defaults_for_timestamp=true
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒
wait_timeout=60
#交互式连接超时时间秒
interactive-timeout=600
skip-grant-tables
出错处理
systemctl restart docker
sudo lsof -i :3306
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'master$1234';
flush privileges;
vim /mysql/conf/my.cnf
sudo docker run -d -p 3306:3306 --name mysql -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=master$1234 mysql:8.0.33
firewall-cmd --zone=public --add-port=3306/tcp --permanent
docker pull mysql:8.0.33
--显示网络
docker network ls
-- 新建网络
docker network create --driver bridge --subnet 172.18.0.0/16 --gateway 172.18.0.1 bind
--查新建网络
docker network inspect bind
docker run -d -p 3306:3306 \
--net bind --ip 172.18.0.103 \
--name mysql \
--restart=always \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=master$1234 \
-v /mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /mysql/logs:/logs \
-v /mysql/data:/var/lib/mysql \
--privileged=true \
mysql:8.0.33
docker cp mysql:/etc/my.cnf /mysql/conf(有的系统是这个)
docker cp mysql:/etc/mysql/my.cnf /mysql/conf
docker exec mysql cat /etc/mysql/my.cnf
use mysql
update user set Host='%' where User='root';
//********************redis*******************
firewall-cmd --zone=public --add-port=6379/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --list-ports
docker run --name redis -p 6379:6379 \
--net bind --ip 172.18.0.104 \
--restart=always \
-v /redis/conf/redis.conf:/etc/redis/redis.conf \
-v /redis/data:/data -d redis
//********************nginx**********************
1.创建挂载目录
mkdir -p /home/nginx/conf \
mkdir -p /home/nginx/log \
mkdir -p /home/nginx/html \
mkdir /home/pre_server -p \
1、拉取镜像
docker pull nginx
2、启动nginx容器
docker run --restart=always --name=nginx -p 80:80 -d nginx
3、访问测试
访问地址:http://ip+port
5、复制配置文件到宿主机器
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
6、创建前端工程挂载目录
该目录的好处在于,上传新的前端项目后,不用重新启动nginx,只需要修改nginx.conf配置
mkdir /home/pre_server -p
7、删除之前建立的nginx
docker stop nginx
docker rm nginx
8、挂载启动nginx容器
docker run --restart=always \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
--privileged=true -d nginx:latest
9、测试访问
为了更好的验证,容器是已挂载的方式进行启动,我们修改html 下的代码
cd /nginx/html
# 编辑index.html
vim index.html
10、验证pre_home目录
我们将html下的index.html拷贝到/nginx/pre_server下,并且配置nginx.conf文件,再重启nginx,
也可以自己上传,自定义的前端工程到/nginx/pre_server下
11、修改nginx.conf:
vim /nginx/conf/nginx/conf.d/default.conf
添加配置:
location /crb {
alias /nginx/pre_server;
index index.html;
}
# 12、修改配置nginx配置文件后加载
docker exec 容器id nginx -t
docker exec 容器id nginx -s reload
13、测试访问:
访问地址:ip+port/crb
14、总结
通过docker搭建nginx;
实现自定义目录挂载,方便配置文件的修改;
通过pre_home目录管理前端工程,使多个项目时,不用新建nginx容器挂载新的工程目录;
posted on 2023-12-15 18:01 zyp_java_net 阅读(17) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?