docker运行并进入MySQL容器

1、运行容器

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

这是一个使用Docker命令行工具来启动一个MySQL容器的命令。下面,让我们来详细解析这条命令:

docker run

  • docker: Docker的命令行工具。

  • run: Docker的子命令,用于启动一个新的容器实例。

-itd

这是三个组合起来的标志:

  • -i--interactive: 保持标准输入打开,即使没有附加到容器的终端。

  • -t--tty: 为容器分配一个虚拟终端。

  • -d--detach: 在后台运行容器,并返回容器ID。

使用这三个标志的组合意味着在后台启动了一个容器,但该容器仍然为交互命令提供了一个虚拟终端。

--name mysql-test

  • --name: 指定容器的名称。在此情况下,容器的名称将是mysql-test

-p 3306:3306

  • -p--publish: 这允许映射容器内部的端口到宿主机的端口。-p选项中的端口映射格式为 -p <host_port>:<container_port>。在这个例子中,宿主机的3306端口被映射到容器的3306端口。这意味着当尝试在宿主机上连接到3306端口时,实际上是连接到容器内的MySQL服务。

-e MYSQL_ROOT_PASSWORD=123456

  • -e: 允许为容器设置环境变量。

  • MYSQL_ROOT_PASSWORD: 这是MySQL Docker镜像识别的一个特殊环境变量,它设置了MySQL root用户的密码。在这个例子中,root密码被设置为123456

mysql

这是要从Docker Hub或其他Docker注册表中拉取并运行的Docker镜像的名称。这里选择的是官方的MySQL镜像。

总结

命令docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql将在后台启动一个名为mysql-test的MySQL容器实例,映射宿主机的3306端口到容器的3306端口,并设置MySQL root用户的密码为123456

2、进入容器

docker exec -it mysql-test bash

这是一个使用Docker命令行工具运行的命令,下面,让我们详细解释一下:

docker

这是Docker的命令行工具。Docker是一个开放平台,用于开发、运输和运行应用程序。它使用OS级别的虚拟化来打包应用程序及其所有的依赖项到一个容器中。

exec

这是Docker命令中的一个子命令。docker exec允许在正在运行的容器中执行命令。基本上,可以用它来在容器内部运行任何命令,就像在本地机器上直接运行命令一样。

-it

这实际上是两个标志的组合:

  • -i--interactive: 保持标准输入打开,即使没有附加到容器的终端。这意味着可以与执行的命令进行交互。

  • -t--tty: 为执行的命令分配一个虚拟终端。这通常会为提供一个可以输入命令的完整shell界面。

组合这两个选项通常用于在容器中启动交互式shell会话。

mysql-test

这是容器的名字或ID。在这个例子中,我们尝试在名为mysql-test的容器中执行命令。

bash

这是我们在容器内部要执行的命令。在这种情况下,我们希望启动bash shell。bash是一个流行的shell,用于在Linux和其他UNIX系统上运行命令。

总结

docker exec -it mysql bash命令将在名为mysql的正在运行的Docker容器中启动一个交互式的bash shell。这对于查看容器内部、手动运行命令或进行故障排查非常有用。