Docker是一种容器技术,与虚拟化所不同的是,Docker并不会新建一个操作系统,而是共用一个系统内核,容器之间的应用程序相互隔离。如此既防止了一个系统部署多个服务之间的依赖冲突问题,另一方面可以把容器打包发布,在环境部署层面真正的实现了一键部署。
但是Docker并非是一门非常值得研究的技术,在开发方面我们只需要学会简单的使用即可。
一、安装Docker
Docker只能运行Linux环境中,微软发布了WSL技术,即为Windows中的Llinux 子系统,得益于此,我们可以在Windows上使用Docker。Windows平台上Docker的安装步骤如下:
- 首先保证电脑为Win10及以上的操作系统
- 然后功能中打开Hyper-V、使用于Windows的Linux子系统。
- 确保在Bios中打开了虚拟化。Intel为虚拟化的英文,AMD为SVM。
- 安装Docker-Desktop
- 启动Docker-Desktop,按照指示升级为WSL2,期间有多次重启电脑。
二、使用Docker
启动Docker之后,Docker已经安装在我们的电脑,我们可以直接打开CMD,来使用Docker命令。我们可以去Docker Hub寻找一些镜像安装。
我打算安装一个知识碎片整理项目, 使用以下命令。
docker pull memost/play-framework1.3
有需求的可以使用国内的镜像来加速下载。
安装完毕可以在Docker-Desktop的Image中查看到新添加的镜像,直接点Run即可运行。
三、网络配置
我们需要在Windows系统下访问到memost服务,通过查询文档可以得知该服务的端口为5230
。
此时是没有办法访问的,Docker-Desktop的Containers里面会发现此服务的port为空。这说明其端口需要另外设置。
在\\wsl$\docker-desktop-data\data\docker\containers
这个文件夹中,存放着各个容器的配置文件。
在cmd中使用docker ps
命令可以查看服务的ID前N位。选择相应的ID文件夹进去即可。
需要修改hostconfig.json文件。在"PortBindings"
中加入映射 "5230/tcp":[{"HostIp":"","HostPort":"5230"}]
。建议前后的IP保持一致。
然后修改config.v2.json
, 在config
里面的Tty
上一行加入"ExposedPorts":{"5230/tcp":{}} ,
最后是重启Docker,不是重启容器,否则前功尽弃!(文件会被还原)