Docker安装常用的软件

174 阅读5分钟

Redis

创建Redis配置文件和目录

启动前需要先创建Redis外部挂载的配置文件(/home/redis/conf/redis.conf )之所以要先创建 , 是因为Redis本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件当服务器和容器都不存在redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果 。

## 创建目录
mkdir -p /usr/local/software/redis/conf
## 创建文件
touch /usr/local/software/redis/conf/redis.conf

修改配置文件

image.png

  • appendonly yes 启动Redis持久化功能 (默认 no , 所有信息都存储在内存 [重启丢失] 。 设置为 yes , 将存储在硬盘 [重启还在])
  • protected-mode no 关闭protected-mode模式,此时外部网络可以直接访问 (docker貌似自动开启了)
  • bind 0.0.0.0 设置所有IP都可以访问 (docker貌似自动开启了)
  • requirepass 密码 设置密码
vim /usr/local/software/redis/conf/redis.conf
appendonly yes

创建Redis容器并启动

docker run \
-d \
--name redis \
-p 6379:6379 \
--restart unless-stopped \
-v /usr/local/redis/data:/data \
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf \
redis:bullseye \
redis-server /etc/redis/redis.conf

命令解释

image.png

注意 :

  • 命令中所有冒号前面的是主机配置,冒号后面的是redis容器配置。
  • –restart
no,默认策略,在容器退出时不重启容器
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3,指定启动的次数,在容器非正常退出时重启容器,最多重启3次
always,在容器退出时总是重启容器
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

查看Redis是否运行

### 查看Docker运行中的容器
docker ps 
docker ps | grep redis

image.png

Docker日志查看

docker logs redis

image.png

测试redis客户端

### 通过 Docker 命令进入 Redis 容器内部
docker exec -it redis /bin/bash
docker exec -it redis bash
### 进入 Redis 控制台
redis-cli
### 添加一个变量为 key 为 name , value 为 bella 的内容
> set name bella
### 查看 key 为 name 的 value 值
> get name
 
### 或者也可以直接通过Docker Redis 命令进入Redis控制台 (上面两个命令的结合)
docker exec -it redis redis-cli

image.png

进入有密码的Redis控制台

如果你设置了密码,需要通过如下命令进入Redis控制台

image.png

## 通过密码进入Redis控制台
redis-cli -h 127.0.0.1 -p 6379 -a 123456

image.png

Docker安装nacos

nacos介绍

Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件。用来取代以前常用的注册中心(zookeeper , eureka等等),以及配置中心(spring cloud config等等),Nacos是集成了注册中心和配置中心的功能,做到了二合一。

直接运行服务

可以直接用docker 启动服务,镜像不存在会自动拉取

docker run -d -p 8848:8848 --name nacos --env MODE=standalone nacos/nacos-server

image.png

运行容器后可以稍等下,等待nacos启动成功,受环境限制启动可能有些慢

登录页面测试

可以登录服务器测试以下

用户名:nacos 密码:nacos

image.png

Docker安装mysql

配置MySQL忽略大小写

创建MySQL挂载目录

# 创建MySQL配置的文件夹
mkdir -p /tmp/etc/mysql
# 编辑my.cnf配置文件
vi /tmp/etc/mysql/my.cnf

配置MySQL忽略大小写,在我们创建的MySQL配置文件挂载点的目录的my.cnf文件加入如下内容

[mysqld]
lower_case_table_names=1

创建MySQL数据目录

因为默认MySQL启动后他的文件是在容器中的,如果我们删除容器,数据也将会消失,我们需要将数据挂载出来。

#创建mysql存储的目录
mkdir -p /tmp/data/mysql

启动MySql

使用docker run启动容器

docker run -d -p 3306:3306 -v /tmp/etc/mysql:/etc/mysql/mysql.conf.d/ -v /tmp/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7.37

image.png

查看MySQL运行日志

现在MySQL容器起来了,并不代表MySQL已经成功启动,我们需要使用docker logs命令查看MySQL的日志

docker logs -f mysql

该命令可以查看容器日志-f是追踪打印日志,可以看到MySQL已经启动了

image.png

客户端连接MySQL

因为我们已经暴漏端口了,可以使用客户端工具连接MySQL

image.png

检查配置的大小写参数是否生效

SHOW VARIABLES LIKE '%case_table%';

image.png

查看容器挂载的配置文件

可以通过docker exec -ti mysql /bin/bash命令登录容器,检查挂载的配置文件情况

# 登录容器
docker exec -ti mysql /bin/bash

image.png

我们可以看到我们修改的配置文件已经被挂载到了docker内部,这里面用到了exec命令,主要是在docker容器中运行命令,下面我们介绍下 命令格式

主要是在deocker容器中运行命令

docker exec [options] container command [arg...]

命令参数

名称简写描述
--detach-d后台运行模式,在后台执行命令相关命令
--detach-keys 覆盖容器后台运行的一些参数信息
--env-e设置环境变量
--interactive-i展示容器输入信息STDIN
--privileged 为命令提供一些扩展权限
--tty-t命令行交互模式
--user-u设置用户名(format: <nameuid>[:<groupgid>])
--workdir-w指定容器内的目录

查看挂载的数据文件

可以看下挂载的数据文件是否存在

cd /tmp/data/mysql/ && ll

image.png