前言:

基于docker已经部署的情况下,实现以下操作

首先需要看是否已经拉取:

docker images

 

如果没有拉取:

docker pull mysql:8.0.32        //mysql

docker pull redis:6        //redis

docker pull minio/minio        //minio

以上拉取命令,如果有版本,则会拉取指定版本,没有指定则默认拉取最新版本,上面截图latest即为最新版本 。

一、mysql

安装命令:

docker run --restart=always -p 10110:3306 --name mysql -v /mnt/disk1/mysql/conf:/etc/mysql/conf.d -v /mnt/disk1/mysql/logs:/logs -v /mnt/disk1/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.32

命令详解:

--restart=always: docker开机自启

-p:  端口;10110为自定义的暴露出来的端口,绑定容器内部3306端口

-name:服务名称

-v:挂载 自定义位置:原文件位置;做数据持久化

-e:设定变量,这里是设置密码为123456

-d:后台运行

注:自定义的挂载位置我是事先创建好了文件夹的,但实际挂载应该阔以自动生成。

docker ps//查看是否成功启动 

如图,表示成功启动

 

docker exec -it '服务名称' bash  //进入服务

mysql -uroot -p123456 //进入mysql

 

测试链接 
失败解决方案:

以下是几个链接不成功的建议处理方法:

1.检查防火墙端口是否开放

2.授权用户远程访问

        进入mysql之后切换到mysql库;

        use mysql; 

         查询是否授权: 

select User,authentication_string,Host from user;

这样是已授权的;如果没有授权,则:

GRANT ALL ON . TO ‘root’@’%’;
//刷新权限
flush privileges;

至此,mysql安装完成;

二、redis 

安装命令:

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 10111:6379 --name redis -v /mnt/disk1/redis/conf/redis.conf:/etc/redis/redis.conf -v /mnt/disk1/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 

 安装命令与mysql没有太大区别,只需要注意端口的区分,在做挂载的时候,需要先准备好一份redis.conf到将挂载的位置。这样当redis启动的时候则会读取挂载位置的文件而非默认文件,通过这个conf文件阔以修改相关配置,然后重启服务就能生效。

注意事项:

redis-server /etc/redis/redis.conf        //指定配置文件,但是前文有挂载外部文件,所以此路径要和原始路径相同,但挂载到了外面之后,运行起来之后将会用外面配置的conf文件

.conf文件:

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no
port 6379
tcp-backlog 511
requirepass 123456
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

注意其中的bind是注释了的, 否则只能本机使用。

进行测试:

docker exec -it '服务名称' bash

redis-cli  //redis操作台

auth 123456        //鉴权

验证成功 

三、minio

安装命令:

docker run -p 10112:9000 -p 10113:9001     --net=host      --name minio      -d --restart=always      -e "MINIO_ACCESS_KEY=admin"      -e "MINIO_SECRET_KEY=123456"      -v /mnt/disk1/minio/data:/data      -v /mnt/disk1/minio/config:/root/.minio      minio/minio server      /data --console-address ":10113" -address ":10112"

 命令详解:

-p:10112:9000        //代码内使用端口

-p 10113:9001        //控制台访问端口

-e "MINIO_ACCESS_KEY=admin"        //用户名

-e "MINIO_SECRET_KEY=123456"         //密码

验证连接:

 

成功。

总结:

以上为个人的学习经验总结,经过反复部署及删除镜像,最终部署成功。

docker stop '服务名称'        //停止服务

docker start '服务名称'        //启动服务

docker restart '服务名称'        //重启服务

docker rm -f '服务名称'        //删除服务

注意事项:

部署失败卸载重来的话,要删除对应挂载地址内的文件。 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐