淘宝网站制作公司,太原做微网站的公司,大连营商环境建设局网站,物流企业网站建设策划书6Docker 配置 Mysql 容器
1 #xff09;方案1#xff1a;基于centos等linux操作系统
启动centos镜像#xff0c;在里面安装 mysql这样比较麻烦#xff0c;配置的东西很多 …
2 #xff09;方案2#xff1a;直接用 mysql 镜像 (推荐)
$ docker pull mysql 下载镜像$ do…Docker 配置 Mysql 容器
1 方案1基于centos等linux操作系统
启动centos镜像在里面安装 mysql这样比较麻烦配置的东西很多 …
2 方案2直接用 mysql 镜像 (推荐)
$ docker pull mysql 下载镜像$ docker run -itd --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORDmy-pass-xxx-xx mysql$ docker ps 找到容器id$ docker exec -it 容器id /bin/bash 这样来连接上mysql, 这里容器id $ mysql -u root -p 之后使用客户端来连接上容器的mysql服务 使用 服务器物理机 ip和端口测试连接成功 实现mysql的数据存放到本地 配置文件 存放到物理机 /root/mysql/conf.d数据文件 存放到物理机 /root/mysql/data 停止之前的容器重新配置启动 $ docker run -itd --name my_mysql2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql mysql$ 可以测试物理机和容器内的数据同步情况测试正常
Docker 配置 Redis 容器
$ docker pull redis 下载redis镜像$ docker run -itd --name redis-test -p 6379:6379 redis 启动redis容器$ docker ps 查看当前redis$ docker exec -it 容器id /bin/bash $ redis-cli 可以连接上 redis ip addr 拿到到物理机的ip之后在客户端连接redis $ redis-cli -h xxx.xxx.xxx.xxx -p 6379连接成功 安全问题需要授权 启动时需配置密码 $ docker run -itd --name redis2 6378:6379 redis --requirepass 123456 连接 $ redis-cli直接set测试 $ set u wang, 提示 NOAUTH Authentication required. $ auth 123456 这样就可以set了 客户端能正常连接了
Docker 配置 Mongodb 容器 $ docker pull mongo $ docker run -itd --name mymongo -p 27017:27017 -v /root/mongo/data:/data/db mongo $ docker ps 获取 mymongo 容器id $ docker exec -it mymongo /bin/bash $ mongo 链接 mongo 数据库$ show dbs 查看现有数据库$ use myowndb 创建自己的数据库$ db.user.insert({username:wang}) 这样在 myowndb 数据库中创建了user表并插入了一条数据$ show collections 看到目前的 user 集合(表)$ show dbs 可看到多了 myowndb 的数据库$ db.user.find({}) 查看 user 表中所有数据 在物理机上 $ ip addr 获取ip地址 在客户端上 连接 $ mongo xxx.xxx.xxx.xx:27017 $ show dbs$ show collections正常连接 测试数据持久化 $ docker inspect 容器id | grep mongo 查看对应映射关系销毁之前容器创建新容器测试正常数据都在 mongo密码问题 docker run -d --name authMongo \-e MONGO_INITDB_ROOT_USERNAMEadmin \-e MONGO_INITDB_ROOT_PASSWORD123456 \-p 27017:27017-v /root/mongo/data:/data/db \mongo --auth两个变量MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD结合起来使用来传递环境变量配置账户密码 创建账户进行授权 db.createUser({user: wang,pwd: 123456,roles: [{role: userAdminAnyDatabase,db: admin},readWriteAnyDatabase],
})创建一个新用户并设置该用户的密码 该用户是在 admin 身份验证数据库中创建的并被赋予角色, 这是一个超级用户角色 $ docker exec -it authMongo /bin/bash $ mongo$ $ show dbs$ 发现看不到数据了$ db.auth(wang, 123456)$ 发现没法授权 开始正确鉴权连接 $ mongo admin 连接admin数据库$ db.auth(wang, 123456)$ show dbs 这样就能看到了说明鉴权成功了 在客户端连接docker容器的mongo服务 $ mongo xxx.xxx.xxx.xxx:27017/admin$ admin 是数据库可以指定任意数据库 $ db.auth(wang, 123456) 这里是账户和密码$ show dbs 发现有数据正常连接