微信扫一扫 分享朋友圈

已有 2 人浏览分享

开启左侧

如何使用Docker部署安装MySQL、Redis、Nginx

[复制链接]
2 0
快速上传下载工具(lrzsz)
# 安装lrzsz
yum install -y lrzsz
上传方式:拖拽上传到当前目录。rz -y选择上传。
下载指定文件:sz 文件路径,接着就让我们进行选择存放目录,
image.png
Docker环境安装
    安装yum-utils:
yum install -y yum-utils device-mapper-persistent-data lvm2
    为yum源添加docker仓库位置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    安装docker:
yum 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.7
docker run -it --network some-network --rm mysql mysql -hmymysql -uroot -proot
正式快速部署:
1、下载MySQL5.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 (含每一步的图解)实战
下载Redis5.0的docker镜像:
docker pull redis:5
由于redis镜像中默认不会带redis.conf,所以若是我们想要使用配置文件来进行启动的话就需要自己去官方找redis.conf,再经过修改后放入到指定的目录,之后来容器启动时挂载即可:各个版本下载地址-redis官方
    docker安装启动redis 说说那些年遇到的坑
需要修改的的点有:
1、一定要注意自己的redis版本
2、设置密码:requirepass 123456
3、#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
下载Nginx1.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 nginx
docker 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

image.png


免责声明:
1,海欣资源网所发布的资源由网友上传和分享,不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
2,海欣资源网的资源来源于网友分享,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3,海欣资源网所发布的资源由网友上传和分享,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
4,如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉,联系方式邮箱 haixinst@qq.com
海欣资源-企业信息化分享平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

37

主题
热度排行
回复排行
最新贴子

Archiver|手机版|海欣资源 ( 湘ICP备2021008090号-1 )|网站地图

GMT+8, 2024-11-24 10:12 , Gzip On, MemCached On.

免责声明:本站所发布的资源和文章均来自网络,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉。