介绍:快速构建、运行、管理应用的工具
在不同的服务器上部署多个应用,但是往往不同应用之间会有冲突,因为它们所依赖的环境,函数库,配置都不一样,此时docker在运行时形成了一个隔离环境(容器),各应用之间互不干扰。
docker运行时去镜像仓库下载镜像(image),该镜像仓库准备了常用的软件的镜像,这些镜像简单来说就是安装好的,配置好的,包含其环境配置和系统函数库的绿色免安装的包,下载下来即可直接运行,无需考虑环境配置,依赖等问题。
找到这些镜像(执行命令)-->守护进程进行监听,根据命令判断运行什么应用-->去镜像仓库寻找该应用的镜像-->将该镜像拉取到本地运行(可以直接运行,一次下载,多次运行)-->创建隔离环境(容器)
mysql的客户端无法直连mysql容器的端口,但是可以连接其所在的宿主机,再进行端口映射(将宿主机的3306端口和容器的3306端口进行映射),因为宿主机和容器由docker控制,因此两者之间可以进行端口映射,当我们去访问宿主机的3306端口,docker会将请求转到容器的3306端口,相当于间接访问到了容器
注意: -p 3306:3306 前面的3306为宿主机的端口(不一定是3306),后面的是容器内的3306端口(取决于进程,端口无需改动)。比如,部署两台mysql,则有两个容器,这两个容器端口都是3306(隔离不冲突),但各自所在的宿主机不能都为3306,否则会冲突