Docker学习笔记实战分享

KingBes

Docker 学 习 笔 记 实 战 分 享

安装mysql

简单安装

docker search mysql 查找mysql
docker pull mysql 拉去下来
docker run -p [你自定义的端口]:3306 -e MYSQL_ROOT_PASSWORD=[您的mysql密码] -d mysql:[版本号] 启动mysql
docker exec -it [容器id] /bin/bash 进入容器

在容器中

mysql -u root -p 进入mysql 输入密码
SHOW VARIABLES LIKE 'character%'; 查看mysql默认编码

解决链接数据库时2059 - Authentication plugin 'caching_sha2_password' cannot be loaded报错
请用最新的 navicate 版本

实战操作

新建mysql实例

docker run -d -p [自定义端口]:3306 --privileged=true -v [本地存储]/log:/var/log/mysql -v [本地存储]/data:/var/lib/mysql -v [本地存储]/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=[密码]  --name [定义容器名] [容器名]:[容器版本]

实例

docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql mysql:5.7

解决mysql中文乱码,你存储的/zzyyuse/mysql/conf中

cd /zzyyuse/mysql/conf cd到该目录
vim my.cnf 新建编辑文件my.cnf

插入一下并保存退

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
cat my.cnf 再次输入此命令查看文件内容
docker restart [你的mysql容器id或者名称] 修改完要重启mysql
SHOW VARIABLES LIKE 'character%'; 查看编码是否修改成功

假设容器被删了

docker rm -f [容器id/容器名] 删除容器

下面重复再启动,看数据是否还在里面

docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=1164601554  --name mysql mysql

容器数据和宿主机同步,宿主机的数据没删除,数据依然在~

安装redis

简单安装

docker search redis 查找redis
docker pull redis 拉去下来
docker run -d -p [自定义端口]:6379 redis:[版本号] 运行redis
docker exec -it [容器id] /bin/bash 进入redis

实战

在宿主机新建目录

mkdir -p /app/redis 

将文件redis.conf 拷贝到目录/app/redis 里面
下面是修改redis.conf

vim /app/redis/redis.conf

开启redis验证 ==可选==

requirepass 123  123是你设置的密码

==允许redis外地连接-必须== 注释掉 #bind 127.0.0.1


# Examples:

#

# bind 192.168.1.100 10.0.0.1

bind 0.0.0.0 ::1
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES

# JUST COMMENT THE FOLLOWING LINE.

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bind 0.0.0.1

将daemonize yes注释起来或者改为daemonize no,不然会和docker run -d 冲突导致容器启动失败

# By default Redis does not run as a daemon. Use 'yes' if you need it.

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize no

开启redis数据持久化--==可选== appendonly yes

# Please check http://redis.io/topics/persistence for more information.

appendonly yes

开启redis容器

docker run  -p [自定义端口]:6379 --name [容器新名称] --privileged=true -v [redis存储目录]/redis.conf:/etc/redis/redis.conf -v [redis存储目录]/data:/data -d [镜像]:[版本号] redis-server /etc/redis/redis.conf

示例

docker run  -p 6379:6379 --name redis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis redis-server /etc/redis/redis.conf

进入redis

docker exec -it redis /bin/bash
redis-cli 登入redis
239 1 4
1个评论

兔白白

这是可以在一个容器里面 把所需要的环境都装好了。 然后 再把容器打包成镜像 是这个意思吗?
下次使用的时候 就只需要 拉取镜像 然后 上传项目代码 就能完成项目的部署了 是这个意思吧

  • KingBes 2024-09-20

    这个是在已经安装docker的情况下,直接安装软件,在搭建容器时如果没有相关镜像会自动下载的

KingBes

1420
积分
0
获赞数
0
粉丝数
2023-06-12 加入
×
🔝