八、Docker入门系列--Docker常用安装

八、Docker 常用安装

一、Docker入门系列--Docker 简介
二、Docker入门系列--Docker安装
三、Docker入门系列--Docker常用命令
四、Docker入门系列--Docker镜像
五、Docker入门系列--Docker容器数据卷
六、Docker入门系列--DockerFlie解析
七、Docker入门系列--使用DockerFlie自定义Tomcat镜像
八、Docker入门系列--Docker常用安装
九、Docker入门系列--本地镜像发布到阿里云
十、Docker入门系列--Docker-Compose简介和安装
十一、Docker入门系列--Docker-Compose模板命令
十二、Docker入门系列--Docker-Compose常用命令
十三、Docker入门系列--Portainer可视化Docker
十四、Docker入门系列--Docker搭建部署SpringCloud微服务项目Demo


8.1 总体步骤

搜索镜像->拉取镜像->查看镜像->启动镜像->停止容器->移除容器

  • docker search xxx
  • docker pull xxx:TAG
  • docker images xxx
  • docker run [-itd -p port:port] [--name yyy] xxx:TAG
  • docker stop 容器ID/yyy
  • docker rm [-f] yyy

8.2 安装mysql

8.2.1 mysql5.7

docker pull mysql:5.7

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

命令说明:

-p 12345:3306:将主机的3306端口映射到docker容器的3306端口。

--name mysql:运行服务名字

-v /mydata/mysql/conf:/etc/mysql :将主机/mydata/mysql/conf目录,挂载到容器的/etc/mysql目录

-v /mydata/mysql/data:/var/lib/mysql:将主机的/mydata/mysql/data目录,挂载到容器的/var/lib/mysql目录

-v /mydata/mysql/log:/var/log/mysql:将主机的/mydata/mysql/log目录,挂载到容器的/var/log/mysql目录

-e MYSQL_ROOT_PASSWORD=10086:初始化 root 用户的密码。

-d mysql:5.7 : 后台程序运行mysql5.7

使用windows上的sqlyog进行远程连接:

记得关闭宿主机防火墙或者开启3306端口

# 查看防火墙信息,看哪些端口可以访问
firewall-cmd --list-all
# 关闭防火墙
systemctl stop firewalld

# 或者开启3306端口访问(推荐)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
systemctl restart firewalld

8.2.2 使用docker对mysql容器中的数据进行备份

将docker mysql容器中的所有数据库导出到宿主机的/mydata/mysql8/all-databases.sql文件中

docker exec myql服务容器ID sh -c ' exec mysqldump --all-databases -uroot -p"10086" ' > /mydata/mysql8/all-databases.sql

# 如果使用UTF-16编码 用--result-file= 替换>
docker exec myql服务容器ID sh -c ' exec mysqldump --all-databases -uroot -p"10086" ' --result-file=/mydata/mysql8/all-databases.sql

mysqldump是mysql自带的逻辑备份工具。命令格式:官网mysqldump

mysqldump [选项] 数据库名 [表名] > /路径/filename.sql
mysqldump [选项] --数据库名 [选项 表名] > /路径/filename.sql
mysqldump [选项] --all-databases [选项] > /路径/filename.sql

常用选项说明:

参数名 缩写 含义
--host -h 服务器IP地址
--port -P 服务器端口号
--user -u mysql用户名
--password -p mysql密码
--database 指定要备份的数据库
--all-databases 备份mysql上的所有数据库
--compact 压缩模式,产生更少的输出
--comments 添加注释信息

8.3 安装redis

docker pull redis

docker run -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf  -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

--appendonly yes 表示使用AOF进行持久化 (redis默认使用rdb进行持久化)

redis.conf是个文件夹,不是个文件 (小声BB:这个redis.conf文件夹是不是太容易引起歧义了?还有redis-server启动的时候,后面跟的那串不是指定的配置文件的路径吗,讲道理redis.conf应该就是个配置文件才对);

在主机/mydata/redis/conf/redis.conf目录下新建redis.conf文件

vim /mydata/redis/conf/redis.conf

测试redis-cli连接:docker exec -it redis容器ID redis-cli

测试生成持久化文件:

posted @ 2022-12-07 09:27  向宁的光  阅读(142)  评论(0编辑  收藏  举报