赞
踩
先前已经提到,容器存在于宿主机中。宿主机有端口,而容器也有端口,但由于容器是一个独立的沙箱环境,二者的端口并不冲突。
如上图所示,外部机器可以访问宿主机,宿主机可以访问容器(宿主机相当于代理),但外部机器却不可以直接访问容器。
端口映射是指:将宿主机的A端口与某一个容器的B端口进行绑定。当外部机器访问A端口时,宿主机将以代理的身份访问容器的B端口。如此一来,就实现了外部机器对容器B端口的访问。
创建容器时加入-p参数:
-p <宿主机端口>:<容器端口>
[拉取镜像] 拉取mysql5.6镜像;
docker pull mysql:5.6
[运行镜像以创建容器] 创建容器实例,并配置数据卷和端口映射;
docker run -id \
-p 3306:3306 \
--name=container_mysql \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/logs:/logs \
-v /usr/local/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
[进入容器] 使用docker exec
指令进入容器;
docker exec -it container_mysql /bin/bash
[测试端口映射是否配置成功] 在终端创建一个数据库,随后使用Navicat测试连接,查看数据库是否成功创建。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。