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
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
容器数据和宿主机同步,宿主机的数据没删除,数据依然在~
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
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
这是可以在一个容器里面 把所需要的环境都装好了。 然后 再把容器打包成镜像 是这个意思吗?
下次使用的时候 就只需要 拉取镜像 然后 上传项目代码 就能完成项目的部署了 是这个意思吧
这个是在已经安装docker的情况下,直接安装软件,在搭建容器时如果没有相关镜像会自动下载的