> 如果两个容器在同一个网络上,它们可以相互通信。如果他们不是,他们就不能。
# 创建网络 docker network create todo-app # 启动Mysql5.7容器 docker run -d \ --network todo-app --network-alias mysql \ -v todo-mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=todos \ mysql:5.7 # 您会注意到我们使用了一个名为todo-mysql-datahere 的卷并将其安装/var/lib/mysql在 MySQL 存储其数据的位置。但是,我们从未运行过docker volume create命令。Docker 认识到我们想要使用一个命名卷并自动为我们创建一个。 # 连接到MySQL容器的命令行程序 docker exec -it <mysql-container-id> mysql -u root -p
# 启动应用程序 docker run -dp 3000:3000 \ -w /app -v "$(pwd):/app" \ --network todo-app \ -e MYSQL_HOST=mysql \ -e MYSQL_USER=root \ -e MYSQL_PASSWORD=secret \ -e MYSQL_DB=todos \ node:12-alpine \ sh -c "yarn install && yarn run dev"
参考:
多容器应用程序