Docker学习系列(一):windows下安装docker
来源:互联网 发布:同济大学软件学院就业 编辑:程序博客网 时间:2024/06/05 14:21
windows下安装docker的方法应该参考Docker官网,之前参考的是网上其他人翻译的博客,出了一些问题,后来发现,是由于docker更新速度较快,安装官网的方法最为妥当!
下面引用Docker 中文指南中的几个提示:
提示1:Docker 已经在windows7.1和windows 8上通过测试,当然它也可以在低版本的windows上使用。但是你的处理器必须支持硬件虚拟化。
提示2:Docker 引擎使用的是Linux内核特性,所以我们需要在 Windows 上使用一个轻量级的虚拟机 (VM) 来运行 Docker。我们使用 Windows的Docker客户端来控制 Docker 虚拟化引擎的构建、运行和管理 。
提示3:为了简化这个过程,我们设计了一个叫 Boot2Docker 的应用程序,你可以通过它来安装虚拟机和运行 Docker。
提示4:虽然你使用的是 Windows 的 Docker 客户端,但是 docker 引擎容器依然是运行在 Linux 宿主主机上(现在是通过Virtual box)。直到我们开发了 windows 版本的 Docker 引擎,你只需要在你的 Windows 主机上启动一个 Linux 容器。
参考Install Docker for Windows,即按照该网站的步骤一步步按照即可,该网站的教程非常详细
1.windows按照docker的基本要求
(1)64为操作系统,win7或者更高
(2)支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用
2.具体安装步骤
即安装Docker Toolbox,同时还附加安装
- Docker Client for Windows
- Docker Toolbox management tool and ISO
- Oracle VM VirtualBox
- Git MSYS-git UNIX tools
不用担心,下载的Docker Toolbox已经完全包含了这几个软件,直接安装就可以了
1.进入Docker Toolbox的下载网页,选择windows版本下载
2. 下载完成后,双击安装文件
3. 一路Next,接受所有默认安装
注意:在安装过程中,会出现几个其他的安装过程,如Ocracle Corporation等系列软件,全部选择安装即可,下面是几个小例子:
另外,如果你安装了360,它可能会阻止程序的安装,应该注意允许程序安装
4. 最后Finish
5. 整个安装过程非常简单,安装完成后,可以在桌面得到如下的三个图标:
3.开始使用
1.点击Docker Quickstart Terminal图标,从而打开一个Docker Toolbox terminal
- 打开terminal后,terminal会自动进行一些设置,需要点时间,全部完成后,会出现如下的结果
3.在$后输入各种docker命令就可以使用docker了
注:不需要像ubuntu中那样使用sudo!
例如:
(1)查看docker的版本信息
- 1
- 1
(2)登陆docker Hub的账号
- 1
- 1
然后,输入用户名和密码,例如
个人觉得:在使用docker时,是否登陆没有特别大的影响,只不过是,如果登陆了,就可以向docker hub上push自己的镜像了
4.安装远程连接工具连接docker
按照上面方法打开Docker Toolbox terminal后,发现在该终端中,无法进行复制、粘贴等操作,使用起来非常不方便,所以,这里参考zistxym的博文,安装远程连接工具SecureCRT
- 下载SecureCRT
地址:绿盟SecureCRT绿色版免安装,不知道为什么,有时这两个链接提示有病毒,所以,再提供一个百度云盘的链接,提取码:rm3g - 运行SecureCRT
连接docker
注:默认的用户名和密码是: docker/tcuser使用SecureCRT即与使用Docker Quickstart Terminal的作用相同
- 再使用SecureCRT连接docker时,必须要先启动Docker Quickstart Terminal
关于SecureCRT的几点设置
(1)使用中发现,secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致,如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在options菜单—-》global options——》terminal——-》mouse功能块处将paste on处改为:right button
此时,再鼠标右键时,弹出了文本操作功能的菜单,如下:
(2)更改secureCRT的字体和背景
仅是更改当前section的字体
5.安装中遇到的问题
全部安装完成后,打开Docker Quickstart Terminal,可能会出现如下错误:
这是因为电脑没有开启支持VT-X/AMD-v功能,即没有开启虚拟化技术,需要重启电脑,去BIOS里开启该功能
在利用image生成镜像时,发生了如下错误
flag provided but not defined:
以为是因为docekr service和client的版本不同,各种查询折腾,也没有成功,最后发现,居然是命令中-v和路径之间少了空格!都怪自己没有仔细查看错误提醒
~~~~~~~~~~
6.Docker的更新
如果本机安装的docker过期了,也就是有新版本的docker发布时,应该对本机的docker进行更新,否则很可能会影响它的继续使用,那么,对本机的docker进行更新可以安装下述方式:
(1)打开Docker Quickstart Terminal终端
(2)输入命令:docker-machine upgrade default
会开始自动更新本机的docker,如下图所示
(3)查看docker版本
- 1
- 1
7.Docker中的jupyter
我使用的image中带有jupyter,但发现按照ubuntu下的使用方法,即进入容器后,打开http://0.0.0.0:8888/无法打开Jupyter,经过一番查询才终于找到正解,原来jupyter的image中就有明确说明,但没有想到去那里查询!
具体方法:
(1)打开boot2docker,输入docker-machine ip
,会返回一个IP地址,例如
$ docker-machine ip myjupytermachine
192.168.99.104
(2)在浏览器中打开http://192.168.99.104:8888,即可打开jupyter
而不是与ubuntu中一样的http://localhost:8888 (http://0.0.0.0:8888/)
8.windows下使用docker的常用命令
详细内容与ubuntu下的使用方法类似,见Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项,但为了查阅方便,这里再单独列举
- 查看本机images
- 1
- 1
- 查看本机运行的container
- 1
- 1
- 从dockerhub上pull 镜像
- 1
- 1
- 利用image运行container:
- 1
- 1
(1)利用参数 -v
(2)冒号前为宿主机目录,必须为绝对路径
① /c/Users/tingting/dropbox/code
:
本机的C:\Users\tingting\dropbox\code
文件夹
② /c/Users/tingting/dropbox/data
本机的C:\Users\tingting\dropbox\data
文件夹
(3)冒号后为镜像内挂载的路径
① /root/opt/workspace
docker中的文件夹/root/opt/workspace
② /root/data
docker中的文件夹/root/data
(4)这里的本机文件夹为c盘,那么,能否为d盘呢?
测试:
- 1
- 1
发现并不可行!这是因为目前,windows下只支持c盘下的文件夹映射
9.Docker虚拟机文件地址修改
默认情况下,docker-machine创建的虚拟机文件,是保存在C盘的C:\Users\用户名\.docker\machine\machines\default 目录下的,如果下载和使用的镜像过多,那么必然导致该文件夹膨胀过大,如果C盘比较吃紧,那么我们就得考虑把该虚拟机移到另一个盘上。具体操作如下:
1.使用docker-machine stop default停掉Docker的虚拟机。
2.打开VirtualBox,选择“管理”菜单下的“虚拟介质管理”,我们可以看到Docker虚拟机用的虚拟硬盘的文件disk。
3.选中“disk”,然后点击菜单中的“复制”命令,根据向导,把当前的disk复制到另一个盘上面去。
4.回到VirtualBox主界面,右键“default”这个虚拟机,选择“设置”命令,在弹出的窗口中选择“存储”选项。
5.把disk从“控制器SATA”中删除,然后重新添加我们刚才复制到另外一个磁盘上的那个文件。
这是我设置好后的界面,可以看到我在步骤3复制的时候,复制到E:\VirtualBox\default\dockerdisk.vdi文件去了。
6.确定,回到PowerShell,我们使用docker-machine start default就可以启动新地址的Docker虚拟机了。确保新磁盘的虚拟机没有问题。就可以把C盘那个disk文件删除了。
【注意:不要在Window中直接去复制粘贴disk文件,这样会在步骤5的时候报错的,报错的内容如下,所以一定要在VirtualBox中去复制!】
Failed to open the hard disk file D:\Docker\boot2docker-vm\boot2docker-vm.vmdk. Cannot register the hard disk 'D:\Docker\boot2docker-vm\boot2docker-vm.vmdk' {9a4ed2ae-40f7-4445-8615-a59dccb2905c} because a hard disk C:\Users\用户名\.docker\machine\machines\default\disk.vmdk' with UUID {9a4ed2ae-40f7-4445-8615-a59dccb2905c} already exists. Result Code: E_INVALIDARG (0x80070057) Component: VirtualBox Interface: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554} Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
10.镜像加速
在国内使用Docker Hub的话就特别慢,为此,我们可以给Docker配置国内的加速地址。我看了一下,DaoCloud和阿里云的镜像加速还不错,另外还有网易的蜂巢。选一个就行了。以DaoClound为例,注册账号,然后在https://www.daocloud.io/mirror 就可以看到DaoClound提供给您的镜像加速的URL。然后到PowerShell中去依次执行:
docker-machine ssh default sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile exit docker-machine restart default
这样重启Docker后就可以用国内的镜像来加速下载了。
试一下下载一个mysql看看快不快:
docker pull mysql
下载完镜像,我们运行一个容器:
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123 mysql:latest
接下来我们打开windows下的mysql客户端,服务器地址填docker虚拟机的IP地址,通过docker-machine env可以看到,我这里是192.168.99.100,然后用户名root,密码123,这样我们就可以连接到docker容器里面的mysql了。
【注意,Docker容器是在VirtualBox的虚拟机里面,不是在Windows里面,所以不能用127.0.0.1访问】
转自:http://blog.csdn.net/tina_ttl
- Docker学习系列(一):windows下安装docker
- Docker学习系列(一):windows下安装docker
- Docker学习系列(一):windows下安装docker
- Docker学习系列(一):windows下安装docker
- Docker学习系列(一):windows下安装docker
- Docker学习系列(四):Docker下安装Jupyter
- Docker 学习系列 -- Docker 安装
- Docker系列~安装(一)
- docker学习笔记(一): docker安装
- Docker系列(一)安装
- Docker学习(一)安装
- windows下安装docker
- Windows下安装Docker
- windows下安装docker
- windows下安装docker
- Windows下安装Docker
- windows下安装docker
- Windows下安装Docker
- R语言系列:数据的基本运算
- 使用ajaxFileUpload与SpringMVC实现异步上传下载文件并返回json数据
- 1036 某年某月有多少天
- 微信小程序基础运用手册
- fragment给fragment传值
- Docker学习系列(一):windows下安装docker
- 在外网用SSH访问内网LINUX服务器
- POJ 1182 食物链(带权并查集)
- SpringMVC返回Json数据-方式1
- 从Spring MVC中获取Controller中的请求信息
- Android和HTML5混合开发中android代码与JS交互
- 前端加载动画/加载等待动画
- ruby学习笔记-命名规范
- RHEL/Centos7 安装图形化桌面