docker 下安装 mysql / mongoDB / postgres

简介: 安装 mysql 5.7docker pull mysql:5.7docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=feitangfei mysql:5.7# 5.7的这个版本竟然 -u 和 -p 之间不能加空格,我也是醉了docker exec -it mysql-test mysql -uroot -pfeitangfei 安装 mysql 8.0.18docker pull mysql:8.0.18如果是此句, 则是拉取最新版本 $ docker pull mysql:latest

安装 mysql 5.7



docker pull mysql:5.7
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=feitangfei mysql:5.7
# 5.7的这个版本竟然 -u 和 -p 之间不能加空格,我也是醉了
docker exec -it mysql-test mysql -uroot -pfeitangfei


安装 mysql 8.0.18


docker pull mysql:8.0.18


如果是此句, 则是拉取最新版本 $ docker pull mysql:latest


查看对应IMAGE ID 为 ed1ffcb5eff3

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               8.0.18              ed1ffcb5eff3        6 months ago        456MB


docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 ed1ffcb5eff3


进入 CONTAINER ID 然后加载 bash

docker exec -it mysql-test bash


或者一步到位

docker exec -it mysql-test mysql -uroot -p123456


mysql 设置远程登录



  1. 登录 mysql 账号


  1. 修改 root 用户登录地址


  1. 修改 root 用户密码加密方式


mysql -uroot -p123456
use mysql;
-- 查询当前数据库相关信息
select host,user,authentication_string,plugin from user;
-- 若不存在 `root@%`  将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录
UPDATE USER SET host = '%' WHERE user = 'root';
-- 并刷新权限
flush privileges;
--将用户root密码设置为永不过期
mysql> alter user 'root'@'%' identified by '123456' password expire never;
Query OK, 0 rows affected (0.01 sec)
--将root用户密码加密方式改为mysql_native_password ,上面查到root用户密码的加密方式为caching_sha2_password 
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.00 sec)
--刷新权限,在别的机器上即可登录
mysql> flush privileges;


-- 可以添加远程登录用户
CREATE USER 'xiaobudian'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'xiaobudian'@'%';


现在可以任意客户端尝试登录

mysql  -uroot -p123456 -h 117.xxx.xx.xx


117.xxx.xx.xx 为对应你的 IP 地址


安装 mongoDB



下载 mongo 4 最新版本

docker pull mongo:4

docker run -itd \
--name my_mongo \
-p 27017:27017 mongo:4 \
--auth \
--bind_ip_all


-it 表示交互


-d 表示后台运行


--name 取个名字


-p 指定一个端口映射


--auth:需要密码才能访问容器服务。


mongo:4 --auth --bind_ip_all 则是mongo的一些参数


The docker exec command allows you to run commands inside a Docker container. The following command line will give you a bash shell inside your mongo container:

Docker exec 命令允许您在 Docker 容器中运行命令。 下面的命令行将在 mongo 容器中为您提供一个 bash shell:

docker exec -it my_mongo bash


The MongoDB Server log is available through Docker's container log:

服务器日志可以通过 Docker 的容器日志获得:

$ docker logs some-mongo


如何开启 mongodb 的容器的远程连接


进入容器内部,然后修改 /etc/mongod.conf.orig 配置文件

# 更新源 & 安装 vim
apt-get update && apt-get install vim
# 修改 mongo 配置文件
vim /etc/mongod.conf.orig


注释掉# bindIp: 127.0.0.1 或者改成bindIp: 0.0.0.0 即可开启远程连接


接着使用以下命令添加用户和设置密码,并且尝试连接。

# 连接 admin 这个 db
docker exec -it my_mongo mongo admin
# 创建一个名为 zhangsan,密码为 222333 的用户。
db.createUser({ user:'zhangsan',pwd:'222333',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('zhangsan', '222333')


通过 robo 3T 已经可以外网访问了.


image.png


安装 pg



start a postgres instance

$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres


The default postgres user and database are created in the entrypoint with initdb.


The postgres database is a default database meant for use by users, utilities and third party applications.

postgresql.org/docs


参考



数据库篇丨MySQL8.0 设置远程访问权限(最佳实践)!!!_「IT大飞说」的博客-CSDN博客_mysql8开启远程连接


https://blog.csdn.net/xinpengfei521/article/details/80403965


Docker 安装 MySQL | 菜鸟教程


https://www.runoob.com/docker/docker-install-mysql.html


Docker 安装 MongoDB


https://www.runoob.com/docker/docker-install-mongodb.html


Postgres - Official Image | Docker Hub


https://hub.docker.com/_/postgres


目录
相关文章
|
5月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
2月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
316 18
|
3月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
431 3
docker 安装 Postgres 17.6
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
491 5
|
2月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
377 2
|
2月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
520 4
|
4月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
273 0
|
5月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
1932 0
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
161 3