您的位置:首页 > 科技 > IT业 > docker相关

docker相关

2024/12/25 13:35:07 来源:https://blog.csdn.net/weixin_44224921/article/details/141426609  浏览:    关键词:docker相关

docker相关

    • 一、docker安装
    • 二、docker安装mysql
      • 1、安装mysql镜像
      • 2、启动mysql容器
      • 3、查看已启动的容器
      • 4、移除指定容器
      • 5、更改mysql容器的编码方式为utf-8
    • 安装Redis
      • 1、安装redis镜像
      • 2、启动redis、置redis持久化存储,避免重启容器后,数据丢失
      • 3、使用redis
      • 4、redis桌面版下载

一、docker安装

二、docker安装mysql

1、安装mysql镜像

$ docker pull mysql:8.0.31

2、启动mysql容器

$ docker volume create mysql-data
$ docker volume ls
$ docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.31// 查看存储卷对应的宿主存储位置
$ docker volume inspect vol_name

3、查看已启动的容器

$ docker ps -a

4、移除指定容器

$ docker rm 容器id

5、更改mysql容器的编码方式为utf-8

// 在宿主中编写配置文件
$ cd /usr/local/
$ mkdir temp
$ touch mysql.cnf
$ vi mysql.cnfinsert以下内容:
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake// 将文件 cp 到容器指定位置,覆盖原有的配置文件
docker cp /usr/local/temp/mysql.cnf mysql容器名:/etc/mysql/conf.d/mysql.cnf // 重启mysql
docker restart mysq容器名// 确认编码是否成功更改// 进入容器:
docker exec -it 容器id/容器名称 bash
// 登录mysql 
mysql -uroot -p -h localhost
// sql语句查看编码
show variables like 'char%';

在这里插入图片描述

安装Redis

1、安装redis镜像

// redis不加: 版本号, 默认pull的是最新版本
$ docker pull redis

2、启动redis、置redis持久化存储,避免重启容器后,数据丢失

$ mkdir -p /docker/redis
$ mkdir -p /docker/redis/data
$ cd /docker/redis
// 3. 下载 redis.conf 文件
$ wget http://download.redis.io/redis-stable/redis.conf
// 4. 更改 redis.conf 文件的权限
$ chmod 777 redis.conf
# 这行要注释掉,解除本地连接限制
bind 127.0.0.1    --> 需要注释掉# 保护模式是一层安全保护,以避免在互联网上打开的 Redis 实例被访问和利用。
# 当保护模式打开并且默认用户没有密码时,服务器仅允许在本机的回环连接,其他机器无法连接。
# 默认为 yes,在生产环境下一般设置为 no,这样可以避免客户端连接时出现超时或连接不上的情况。
protected-mode no# 默认 no 为不守护进程模式,docker 部署不需要改为 yes,docker run -d 本身就是后台启动,不然会冲突
daemonize no# 设置密码
requirepass 123456# 持久化
appendonly yes$ docker run --name redis -p 6379:6379 \
-v /docker/redis/redis.conf:/etc/redis/redis.conf \
-v /docker/redis/data:/data \
-d redis \
redis-server /etc/redis/redis.conf \
--appendonly yes
  • –name redis 为容器指定一个名称,查看和进行操作都比较方便。
  • -p 6379:6379 指定端口映射,格式为:主机(宿主)端口:容器端口
  • –privileged=true 开启特殊权限
    Docker 挂载主机目录时(添加容器数据卷),如果 Docker 访问出现 cannot open directory:Permission denied,在挂载目录的命令后多加一个 --privileged=true 参数即可。
    因为出于安全原因,容器不允许访问任何设备,privileged 让 docker 应用容器获取宿主机 root 权限(特殊权限),允许我们的 Docker 容器访问连接到主机的所有设备。容器获得所有能力,可以访问主机的所有设备,例如,CD-ROM、闪存驱动器、连接到主机的硬盘驱动器等。
  • -v 挂载文件或目录:前面是宿主机部分,后面是容器部分
  • -d redis 表示后台启动 redis;使用此方式启动,则 redis.conf 中 daemonize 必须设置为 no,否则会无法启动
  • redis-server /etc/redis/redis.conf 在容器内启动 redis-server 的命令,用于加载容器内的 conf 文件,最终找到的是挂载的目录 /docker/redis/redis.conf。
  • –appendonly yes 开启 redis 持久化

3、使用redis

$ docker exec -it redis容器 redis-cli
// 向redis内 存储a, 值为b
$ set a b

在这里插入图片描述

4、redis桌面版下载

RedisDesktopManager下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com