zl程序教程

您现在的位置是:首页 >  其他

当前栏目

[Docker]使用Docker开启一个MariaDB服务并在宿主机里访问服务

2023-04-18 15:20:52 时间

先把镜像下载下来

docker pull mariadb

image
从第四行开始就是下载的镜像文件了,因为docker有一个文件分层机制(联合文件系统),所以一个镜像会分成好几个文件。

镜像下载完成之后把容器起起来

docker run --name mariadb01 -p 3344:3306 -e MYSQL_ROOT_PASSWORD=你的密码 -v /root/docker/mariadb/data:/var/lib/mysql -d mariadb
  • – name启动容器设置容器名称为mariadb01
  • -p 宿主机端口:容器端口,即设置容器的3306端口映射到主机3344端口,后面我们可以在宿主机里通过这个端口访问docker里的这个mariadb
  • -e MYSQL_ROOT_PASSWORD设置环境变量数据库root用户密码为输入数据库root用户的密码
  • -v 宿主机目录:容器内目录,设置容器目录/var/lib/mysql映射到本地目录/root/docker/mariadb/data
  • -d 后台运行容器mariadb并返回容器id

执行完成之后返回了容器的ID
image

然后我们可以用这个ID 进入dockers里:

docker exec -it c9056f447e1a bash

-it 进入容器
-bash 与容器的交互方式,通过bash命令行
或者修改上面的创建容器的命令,让我们可以创建完成之后直接进入容器:

docker run --name mariadb01 -p 3344:3306 -e MYSQL_ROOT_PASSWORD=你的密码 -v /root/docker/mariadb/data:/var/lib/mysql -it mariadb bash

这个容器就是一个linux系统,进入之后我们就像正常使用Linux系统一样通过命令行交互就可以了
image

在宿主机里我们可以通过这个命令来连接到docker里的Mariadb里:

mysql -h localhost -P 3344 -uroot -p

3334就是我们前面设置了映射到的宿主机的端口号
image
因为设置了共享的文件目录(/root/docker/mariadb/data),所以该目录下的数据docker都可以访问到。