D1. Docker: win7 环境下安装 Docker
【下载与安装】
win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
然后安装提示进行傻瓜式安装,安装完成后打开 Docker Quickstart Terminal
这里可能会报错:
右键点击 “属性”,再点击 “兼容性”。这里会报错的原因是因为我之前已经安装好了 Git,但安装路径不是它设置的这个默认的地址,修改后再打开即可。
打开后显示如下:
查看 docker 的版本:docker version
下面可能会报如下错误:https://github.com/docker/for-win/issues/2671
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.38/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
【处理】:这里需要打开 BIOS 的虚拟化技术,怎么打开自行百度。打开后重启即可。
再次打开查看 docker 的版本:docker version,显示如下:
到这里说明 docker 安装成功 !
【虚拟机】
这里主要使用 docker-machine 命令。
1. 首先,查看应该安装的虚拟机:docker-machine ls,这里看到启动了一个名字为 default 的虚拟机。
2. 查看虚拟机 default 的环境变量配置: docker-machine env default
【待续】:如何修改虚拟机环境变量
3. 可以使用 ssh 命令登录到目标虚拟机,否则默认操作的是 default 虚拟机: docker-machine ssh default
4. 使用 exit 命令即可退出
【下载安装镜像】
1. 搜索 hello-world 相关: docker search hello-world
2. 这里我们拉取 kitematic/hello-world-nginx 镜像到 default 虚拟机中: docker pull kitematic/hello-world-nginx
3. 下载完成后查看 docker 容器中的镜像:docker images
这里看到 kitematic/hello-world-nginx 这个镜像就下载下来了,由于前面 pull 的时候没有指定 TAG,所以下载的是最新的版本(latest)
4. 接下来使用 kitematic/hello-world-nginx 镜像启动一个叫 HelloWorld 的容器: docker run --name HelloWorld -p 80:80 -d kitematic/hello-world-nginx
run 命令参数解释:
--name:指定容器的名字
-p:指定端口映射
-d:后台执行,这样不会在当前窗口打印启动日志
更多关于 run 命令的参数可使用命令查看:docker run --help
5. 查看 docker 容器:docker ps -a(注意:如果不加 -a 则查看启动状态的容器)
6. 在地址栏输入 http://192.168.99.100,即可看到容器已启动
7. 这里可以查看容器启动的进程情况:docker top HelloWorld
可以看到 nginx 应用默认的,一个 master 进程,一个 worker 进程。
8. 接下来我们停止容器:docker stop HelloWorld, 然后查看容器情况:docker ps -a,可以看到 HelloWorld 容器的状态变为了 Exited
9. 使用 docker container 相关命令可以查看容器相关信息。
注意:有些信息需要在容器启动后才会显示的,例如端口绑定信息:
也可以重命名容器:docker container rename HelloWorld HelloWorldNginx
更多 docker container 的命令可以通过 docker container --help 查看
10. 移除容器:docker rm
注意:不能移除一个正在运行的容器,我们可以先执行 stop 命令,再执行 rm 命令
如果使用 stop 命令太慢或者出现卡死情况,可以直接杀死容器: docker kill HelloWorldNginx,注意这里并没有删除容器,只是 “快速” stop 容器。
【Kitematic GUI 操作界面】
除了命令行操作,Docker 的window 版本还提供了 Kitematic GUI 界面,这里提供了镜像搜索及下载的功能,也可以配置容器的一些基本信息,如容器名称、端口映射等,比较方便。图形化界面这里就不作介绍了。
【总结】
Docker 的 window 版本提供了 kitematic GUI 界面,方便我们搜索和下载镜像、执行简单配置等功能;同时,我们也要熟悉 Docker 相关的命令行操作,这样才能更好地掌握和处理问题。