快速使用Docker部署MySQL、Redis、Nginx

网友投稿 232 2022-10-20

快速使用Docker部署MySQL、Redis、Nginx

文章目录

​​快速上传下载工具(lrzsz)​​​​Docker环境安装​​​​一、快速部署MySQL​​​​二、快速部署redis​​​​三、快速部署Nginx​​​​问题​​

​​1、关于Docker启动后端口绕过防火墙问题​​

快速上传下载工具(lrzsz)

# 安装lrzszyum install -y lrzsz

上传方式:拖拽上传到当前目录。​​rz -y​​选择上传。

下载指定文件:​​sz 文件路径​​,接着就让我们进行选择存放目录,牛逼!!!

Docker环境安装

安装​​yum-utils​​:

yum install -y yum-utils device-mapper-persistent-data lvm2

为yum源添加docker仓库位置:

yum-config-manager --add-repo install -y docker-ce

启动docker:

systemctl start docker

一、快速部署MySQL

​​mysql-docker文档​​

# 官方docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7docker run -it --network some-network --rm mysql mysql -hmymysql -uroot -proot

正式快速部署:

1、下载MySQL​​5.7​​的docker镜像:

docker pull mysql:5.7

2、使用如下命令启动MySQL服务:

docker run -p 3306:3306 --name mysql \-v /etc/localtime:/etc/localtime \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7

参数说明

-p 3306:3306:将容器的3306端口映射到主机的3306端口-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机-v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码

3、将准备好的sql复制到容器中

# 复制宿主机的manage.sql到mysql容器下的/路径中docker cp /mydata/manage.sql mysql:/

4、进入运行MySQL的docker容器:

# 在容器中创建一个新的命令行docker exec -it mysql /bin/bash # docker exec -it mysql mysql -uroot -p # 使用mysql容器中的命令行

5、在容器中对mysql进行操作

# 使用MySQL命令打开客户端:mysql -uroot -proot --default-character-set=utf8# 此时进入mysql的命令行中,使用数据库并进行导入use manage;source /manage.sql;# 接着创建一个账户,该账号所有ip都能够访问grant all privileges on *.* to 'changlu' @'%' identified by '123456';

注意注意:

在mysql7中有一个groupby的问题:

我们可以自定义一个my.cnf放置到/mysql/conf目录中,docker的mysql镜像源没有带配置文件,我们进行绑定之后启动mysql也就有了

[mysqld]sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# 修改添加好了之后,重启我们的docker容器docker restart mysql

二、快速部署redis

redis镜像中默认时没有redis.conf的参考文章:史上最详细Docker安装Redis (含每一步的图解)实战

下载Redis​​5.0​​的docker镜像:

docker pull redis:5

由于redis镜像中默认不会带redis.conf,所以若是我们想要使用配置文件来进行启动的话就需要自己去官方找redis.conf,再经过修改后放入到指定的目录,之后来容器启动时挂载即可:​​各个版本下载地址-redis官方​​

docker安装启动redis 说说那些年遇到的坑

需要修改的的点有:

1、一定要注意自己的redis版本2、设置密码:requirepass 1234563、#bind 127.0.0.1 要注释掉,允许对外连接4、appendonly yes:开启持久化5、# daemonize yes 一定要要注释,注释,注释!!!

之后使用如下命令启动Redis服务:

# –restart=always 总是开机启动# –log是日志方面的# –appendonly yes 开启redis 持久化# –requirepass xxx 设置密码 docker run --log-opt max-size=100m --log-opt max-file=2 \ -p 6379:6379 --name redis \ -v /etc/localtime:/etc/localtime \ -v /mydata/redis/redis.conf:/etc/redis/redis.conf \ -v /mydata/redis/data:/data \ -d redis:5 redis-server /etc/redis/redis.conf \ --appendonly yes \ --requirepass 123456

进入Redis容器使用​​redis-cli​​命令进行连接:

docker exec -it redis redis-cli

三、快速部署Nginx

下载Nginx​​1.10​​的docker镜像:

docker pull nginx:1.10

先运行一次容器(为了拷贝配置文件):若是不这样拷贝直接指定对应目录的话,在宿主机的conf目录下就都是为空的了

docker run --restart=always -p 80:80 --name nginx \-v /mydata/nginx/html:/usr/share/nginx/html \-v /mydata/nginx/logs:/var/log/nginx \-d nginx:1.10

将容器内的配置文件拷贝到指定目录:

docker container cp nginx:/etc/nginx /mydata/nginx/

进入到宿主机的/mydata/nginx目录,修改该目录下nginx文件名称:

mv nginx conf

终止并删除容器:

docker stop nginxdocker rm nginx

启动nginx:

# /usr/share/nginx/html是nginx默认访问的路径、/var/log/nginx是对应的log日志、/etc/nginx也就是对应nginx配置文件docker run -p 80:80 --name nginx \-v /mydata/nginx/html:/usr/share/nginx/html \-v /mydata/nginx/logs:/var/log/nginx \-v /mydata/nginx/conf:/etc/nginx \-d nginx:1.10

问题

1、关于Docker启动后端口绕过防火墙问题

问题背景:我启动了多个Docker容器后,开了防火墙也能够直接访问端口。

# 查看路由表iptables --list

问题暂时不能解决,主要云服务器还有一层防火墙,就暂时把整个问题放一放。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker常用命令总结
下一篇:使用feign客户端传参接收不到的问题及解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~