docker快速部署Redis、MySQL、Nginx

这篇具有很好参考价值的文章主要介绍了docker快速部署Redis、MySQL、Nginx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


docker部署redis

  1. 拉取镜像
docker pull redis:7.0.10
  1. 拷贝一份redis.conf文件复制到/home/ubuntu/redis文件夹下,修改redis.conf配置文件
vim redis.conf
-----------------------------------------------------
# 内容如下所示
#开启持久化
appendonly yes
port 6379
#设置密码
requirepass 1234
#允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
#默认yes,要改为no,也是是保护模式,限制为本地访问,修改为no后解除保护模式
protected-mode no
# 守护进程,修改为yes后即可后台运行,但是这边需要设置为no
daemonize no
  1. 创建redis容器
docker run -d -p 6379:6379 --restart=always \
-v /home/ubuntu/redis/redis.conf:/etc/redis/redis.conf \
-v /home/ubuntu/redis/data:/data \
--name redis redis:7.0.10 \
redis-server /etc/redis/redis.conf

-------------注释------------------------
docker run -itd --name redis -p 6379:6379 \
--restart=always \
-v /home/xt/redis/redis.conf:/etc/redis/redis.conf \
-v /home/xt/redis/data:/data \
redis redis-server /etc/redis/redis.conf 

-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
–restart=always:启动docker时启动该容器
-v /home/xt/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /home/xt/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:按照这个redis.conf的配置启动
----------注释--------------------------------

docker部署mysql

MySQL 8.0.30

  • 拉取镜像
docker pull mysql:8.0.30
  • 创建容器
systemctl stop mysqld#先暂停mysql服务
docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql --restart=always --privileged=true -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.30#添加一段时区

docker安装完成mysql8,如果使用sqlyog或者navite连接,需要修改密码加密规则,因为低版本客户端工具不支持mysql8最新的加密规则。如果使用客户端连接,需要修改:

  • docker exec 进入mysql容器
docker exec -it mysql /bin/bash
  • mysql -uroot -p 登录你的 MySQL 数据库(密码:1234),然后 执行这条SQL:
mysql -u root -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
ubuntu@VM-4-2-ubuntu:~$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
ubuntu@VM-4-2-ubuntu:~$ sudo docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql --restart=always --privileged=true -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.30
282bf80df823e4533b3220b53ec9551dba9bf462e3b4cb75c628c9eb2452f72b
ubuntu@VM-4-2-ubuntu:~$ sudo docker exec -it mysql /bin/bash
bash-4.4# mysql -u root -p
Enter password: #(注意!!! 这里填docker run时设置的mysql密码——1234)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.30 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
Query OK, 0 rows affected (0.00 sec)

mysql> 

bug:连接不上 docker中的mysql

解决:呃呃呃,在服务器防火墙配置3306端口对外开放…

bug:Access denied for user ‘root’@‘124.160.200.116’ (using password: YES)

原因:mysql中root权限为localhost,需要创建root@%

参考博客:MySQL数据库创建用户root@%

create user 'root'@'%' identified with mysql_native_password by '1234';

ubuntu@VM-4-2-ubuntu:~$ sudo docker exec -it mysql /bin/bash
bash-4.4# use mysql;
bash: use: command not found
bash-4.4# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.30 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT User, Host FROM mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| server           | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

mysql> CREATE USER 'root'@'%' IDENTIFIED BY '1234';
ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'
mysql> drop user 'root'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> create user 'root'@'%' identified with mysql_native_password by '1234';
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT User, Host FROM mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| server           | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)


mysql> grant all on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

docker部署nginx

参考:docker部署nginx

1.拉取镜像

docker pull nginx

2.启动nginx容器(工具人)

docker run --restart=always --name=nginx -p 80:80 -d nginx

3.访问测试

访问地址:http://ip+port

4.挂载准备

  • 宿主机创建挂载目录

    mkdir /home/ubuntu/nginx -p
    
  • 复制配置文件到宿主机

    docker cp nginx:/etc/nginx /home/ubuntu/nginx/conf
    docker cp nginx:/usr/share/nginx/html /home/ubuntu/nginx/html
    docker cp nginx:/var/log/nginx /home/ubuntu/nginx/logs
    
  • 删除之前创建的nginx

    docker stop nginx
    docker rm nginx
    

5.挂载启动nginx容器

docker run --restart=always --name=nginx -p 80:80 \
-v /home/ubuntu/nginx/conf:/etc/nginx \
-v /home/ubuntu/nginx/html:/usr/share/nginx/html \
-v /home/ubuntu/nginx/logs:/var/log/nginx \
-d nginx

6.修改/home/ubuntu/nginx/html/index.html,访问测试

访问地址:http://ip+port

注意:在上述操作步骤中,我只将80端口与宿主机进行了映射,也就意味着只能使用80端口访问nginx,如果要使用nginx启动多个前端项目的时候,则需要将容器里的多个端口映射到宿主机。有两种方式可以实现。

参考:

【Docker】docker安装nginx及端口映射相关配置文章来源地址https://www.toymoban.com/news/detail-767806.html

到了这里,关于docker快速部署Redis、MySQL、Nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第3天学习Docker-Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)

    前提须知: (1)搜索镜像命令 格式:docker search 镜像名 (2)设置Docker镜像加速器 详见文章:Docker设置ustc的镜像源(镜像加速器) 1、部署MySQL 拉取镜像(这里拉取mysql5.7版本) [root@localhost ~]# docker pull mysql:5.7 创建容器(默认运行) [root@localhost ~]# docker run -di --name=my_mysql

    2024年02月06日
    浏览(54)
  • Unbutu系统-Docker安装、JDK环境配置,Docker常用指令、Docker安装MySQL、Redis、Tomcat、Nginx,前端后分离项目部署

    目录 1、防火墙 1.1、查看防火墙状态 1.2、开启防火墙 1.3、关闭防火墙 1.4、重启防火墙 1.5、查看防火墙版本 2、安装JDK 2.1、官网下载tar包 2.3、解压tar.gz文件 2.4、配置环境变量 2.4.1、查看安装路径 2.4.2、设置环境变量 2.4.3、执行该让环境变量生效 2.4.4、查看JDK版本 3、Docker

    2024年02月04日
    浏览(56)
  • 【Linux】Centos 8 服务器部署:docker 安装 jdk、nginx、nacos、redis、Sentinel Dashboard

    目录 一、安装软件 (1)全部安装命令 (2)安装:jdk (3)安装:nginx  (4)安装:nacos (5)安装:redis (6)安装:Sentinel Dashboard 二、开放端口 三、启动软件  (1)启动:nacos (2)启动:nginx (3)启动:redis (4)启动:Sentinel Dashboard 四、访问网址  (1)访问:nacos 

    2024年02月06日
    浏览(65)
  • 使用Docker容器部署java运行环境(java8 + mysql5.7 + redis5.0 + nginx1.14.1

    环境:阿里云ECS服务器 1.1 安装工具 1.2 为yum源添加docker仓库位置 1.3 将软件包信息提前在本地索引缓存 (非必要,建议执行,可以提升yum安装的速度,报错去掉fast试试) 1.4 安装Docker 傻瓜式安装 点击y 1.5 启动Docker 1.6 设置开机自启动 1.7 安装完成后可以测试一下,是否安装成功

    2024年02月02日
    浏览(78)
  • Zabbix6.0全套落地方案-基于RHEL9系列源码编译安装-Linux+Nginx+Mysql+Redis生产级模板及Agent2客户端一键部署

    实践说明:基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等),但适用场景不限于此,客户端一键部署安装包基于RHEL8和RHEL9。 文档形成时期:2023年 因系统或软件版本不同,构建部署可能略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 限于篇幅,Zabbix配置基于Agent2一键

    2024年02月02日
    浏览(49)
  • Docker中创建并配置MySQL、nginx、redis等容器

    1.运行 2.查看运行的镜像 1.创建本地文件夹 2.从容器nginx里复制配置文件到本地 3.查看复制后的本地文件 可以看到文件复制成功! 1.删除容器 2.重新启动nginx 并挂载到本地 3.查看运行的容器 4.修改文件 浏览器访问测试 修改首页 访问(文件映射成功!) redis中文官方网站:h

    2024年01月20日
    浏览(61)
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

    可以到 https://hub.docker.com/ 去搜索node镜像 , 然后下载,也可以直接通过docker pull node下载镜像,然后用这个node镜像启动容器node,这样系统就集成了node服务了,在这里挂载www/node目录到容器中,并指定端口映射,运行nodejs程序,安装npm,以及对应的依赖,启动node目录下对应的项目,然后通过浏

    2024年02月06日
    浏览(59)
  • 安装Docker&使用Docker安装部署MySQL和Redis

    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum remove -y yum-utils sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 如果这一步报错,说尝试其他镜像的话,执行下面步骤

    2024年02月07日
    浏览(60)
  • Docker 部署 Spring Boot 项目(含 MySQL + Redis )

    注意事项:如果需要将 Spring Boot 项目的日志文件挂载到本地,则在打包前需要先在 yml 进行如下配置: 这里的 info 指的是日志等级,可以根据需要进行修改,日志等级主要有以下几种: trace :最低的日志级别,用于记录非常详细的信息,通常仅在诊断问题时使用。 debug :用

    2024年01月21日
    浏览(45)
  • Linux基础+命令操作+mysql、tomcat、nginx、RabbitMQ、Redis,ElasticSearch

    配置代理 linux组成:系统内核+系统级应用程序 内核功能:CPU调度,没存调度,文件调度,网络调度,IO调度 系统级应用程序:文件管理器,软件等 linux内核下载:https://www.kernel.org linux发行版:内核开源,可修改+系统级程序完整封装为linux发行版。 不同发行版基础操作命令都

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包