常用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  阅读(11)  评论(0编辑  收藏  举报

导航