赞
踩
有两个docker镜像:mysql镜像和ubuntu镜像。项目的数据库和代码分别打包在mysql镜像和ubuntu镜像中。项目代码需要跨容器访问数据库。
使用docker --link参数实现容器互联
docker load -i ./mysql.tar
查看已装载镜像列表:
docker images
docker run -d --name mysql -p 3306:3306 mysql8:latest
参数释义:
--name mysql 命名创建的容器为mysql
-p 3306:3306 将容器内的3306端口映射到主机3306端口,方便主机连接调试
mysql8:latest 镜像名称:版本号
查看创建的容器
docker ps -a
可以看到容器已经启动,并且Ports列显示了端口映射情况
如果容器没有启动,执行下面的命令启动它
docker start mysql
连接地址为:localhost:3306
可以去docker hub下载一个打包好的ubuntu镜像
Explore Docker's Container Image Repository | Docker Hub
docker pull ubuntu:20.04
查看镜像列表
docker images
docker run -it --name ubuntu -p 8080:8080 --link mysql:mysql ubuntu:20.04 /bin/bash
参数释义:
-it ... /bin/bash 以命令行模式进入容器,创建完成后会打开/bin/bash
--name 命名容器名为ubuntu
-p 8080:8080 容器的8080端口映射到主机8080端口,方便项目调试
--link mysql:mysql 把mysql容器取一个别名(还是mysql)映射到ubuntu容器中
ubuntu:20.04 以ubuntu:20.04镜像创建容器
之后会进入到容器内的终端/bin/bash
在ubuntu容器内可以通过别名mysql来访问mysql容器内的网络:
mysql:3306 //以别名mysql访问对应容器的网络,端口号为3306
在ubuntu容器中安装telnet进行测试
- apt update
- apt install telnet
使用telnet测试跨容器访问
telnet mysql 3306 #mysql是别名,3306是端口
可以看到mysql别名被自动替换为172.17.0.2,这是真实的mysql容器的ip地址。成功收到对方应答。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。