首先,我们将看看在容器中运行数据库,以及我们如何使用卷和网络来持久化我们的数据并允许我们的应用程序与数据库对话。然后我们将把所有东西放在一个 Compose 文件中,它允许我们用一个命令设置和运行本地开发环境。最后,我们将看看将调试器连接到我们在容器内运行的应用程序。
无需下载 MySQL、安装、配置,然后将 MySQL 数据库作为服务运行,我们可以使用 MySQL 的 Docker 官方镜像并在容器中运行它。
在容器中运行 MySQL 之前,我们将创建几个卷,Docker 可以管理这些卷来存储我们的持久数据和配置。让我们使用 Docker 提供的托管卷功能,而不是使用绑定挂载。您可以在我们的文档中阅读有关使用卷的所有信息。
现在让我们创建我们的卷。我们将为数据创建一个,为 MySQL 的配置创建一个。
$ docker volume create mysql
$ docker volume create mysql_config
现在我们将创建一个网络,我们的应用程序和数据库将使用该网络相互通信。该网络称为用户定义的桥接网络,它为我们提供了一个很好的 DNS 查找服务,我们可以在创建连接字符串时使用它。
$ docker network create mysqlnet
现在我们可以在容器中运行 MySQL 并附加到我们上面创建的卷和网络。Docker 从 Hub 拉取镜像并在本地为您运行。在以下命令中,选项-v用于启动带有卷的容器。有关更多信息,请参阅Docker 卷。
$ docker run –rm -d -v mysql:/var/lib/mysql \
-v mysql_config:/etc/mysql -p 3306:3306 \
–network mysqlnet \
–name mysqldb \
-e MYSQL_ROOT_PASSWORD=p@ssw0rd1 \
mysql
现在,让我们确保我们的 MySQL 数据库正在运行并且我们可以连接到它。使用以下命令连接到容器内正在运行的 MySQL 数据库,并在提示输入密码时输入“p@ssw0rd1”:
$ docker exec -ti mysqldb mysql -u root -p
Ubuntu是一个以桌面应用为主的Linux操作系统。它是一个开放源代码的自由软件,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu将为全球数百个公司提供商业支持。 ...
查看全文Docker采取了一种保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,四位知情人士今日透露,亚马逊、微软和谷歌这三大云计算服务提供商,正在竞争波音公司(Boeing)价值10亿美元的云服务合同。 这些...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,多位知情人士今日称,继加州、纽约州和华盛顿州之后,马萨诸塞州和宾夕法尼亚州的总检察长也加入到对亚马逊的反垄断调查中。 如今,越来越...
查看全文
您好!请登录