关于docker使用的几个小问题(一)

转载(http://www.cnblogs.com/mar-q/)by 负赑屃

 

  由于刚接触docker踩了几个坑,希望本文对网瘾少年有所帮助。

  Docker分CE版(社区版)和EE版(商用版),具体安装流程参考文档介绍,在此不再赘述。下面分Windows和Linux分别踩坑:

一、Windows下的使用

  Win10可以直接安装Docker ToolBox,网上很多配置教程,但是当你百度Win7安装,常见的几个都是安装Boot2Docker。其实Docker ToolBox也是支持Win7的,所以这里就别踩坑了,因为Docker ToolBox里面已经集成了Boot2Docker。这里我不会详细讲解安装步骤,只谈自己碰到的问题,如果你有和我相同的疑惑,相信可以在我这里可以找到答案。

  Boot2Docker其实是Win环境下的一个Linux虚拟机,必须配合virtualBox使用,如果你安装了Docker ToolBox,打开virtualBox可以看到这个虚拟机:

  直接官网下载Docker ToolBox,安装完成运行DockerQuickStartTerminal,执行命令:

docker-machine ls   ##我已经把boot需要的Linux镜像下载了,下载过程比较慢,建议科学上网。

docker-machine env default  ##查看dockertools环境变量:

eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)    ###根据提示运行命令:写入环境变量

  此时我们是在docker环境下的,可以尝试run一个镜像试试(这里试了ubuntu:16.04,本地没有的镜像会自动下载)

docker run -it ubuntu:16.04     ##执行run命令,出现错误提示:

  说明我们运行的方式不太好,按照建议修改run方式:

winpty docker run -it ubuntu:16.04  ##重新执行,成功进入系统

  或者,可以通过ssh的方式进入docker环境,在任意的bash环境下输入命令:

docker-machine ssh default  #在任意bash下执行进入VMbash

docker run -it ubuntu:16.04     ##执行run命令成功进入系统,不会提示使用winpty方式运行。

   Linux下的安装配置没啥坑,yum、apt直接装就好了。

二、使用国内镜像加速器

  docker默认使用的镜像服务器都在国外,速度比较感人,所以需要镜像加速。我使用的是阿里云镜像加速,建议自己去注册一个阿里云账号,进入个人的容器镜像服务->docker hub镜像站点,就可以看到自己的镜像加速地址,阿里云的手册中有各个环境下的配置方法。这里给比较懒的同学推荐中科大的镜像加速地址:

  1. Windows下配置镜像加速

复制代码

#通过docker-machine进入docker环境
docker-machine ssh default
#修改boot2docker配置文件
sudo vi /var/lib/boot2docker/profile
#在--label provider=virtualbox的下一行添加
--registry-mirror https://docker.mirrors.ustc.edu.cn
#重启docker服务 sudo /etc/init.d/docker restart 
#或者重启VM:exit退出VM bash,在windows bash中执行 docker-machine restart

复制代码

  2. Linux下配置镜像加速器(Ubuntu16.04)

  参照阿里云配置docker的daemon.json文件:

vim /etc/docker/daemon.json  ###
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
systemctl restart docker.service  ##重启服务

  有的同学应该会在重启服务的时候报错:

Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.

  查看一下systemctl status docker.service

  这个错误的原因是:docker的socket配置出现了冲突,docker在运行时有一个启动入口文件:/lib/systemd/system/docker.service,而我们在修改镜像加速器的时候又给它生成了一个配置文件:/etc/docker/daemon.json,两个文件对host进行了配置,所以发生冲突。

  解决的办法:将docker启动入口文件中的-H fd://删除再重启服务,或者在启动入口配置监听的端口和本地socket信息:

vim /lib/systemd/system/docker.service
#原:ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
ExecStart=/usr/bin/dockerd
#或者改成:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

 

 三、镜像在哪里

  1. 在Linux下

  我们很容易就可以找到镜像目录,镜像是以层次结构存储的。 每当创建一个pull一个新的image或者容器时会在/var/lib/docker/graph/*生成对应ID的目录存储元数据,/var/lib/docker/aufs/diff/*目录生成对应ID的目录存储数据。 当容器被删除或者image被移除时,对应的目录也会被移除。

  2. 在Mac下

  官方提供的DockerToolBox,不得不吐槽,Windows差距怎么就这么大呢。Mac下通过Open in Finder可以很轻松找到文件目录,Mac硬盘小,玩docker压力还是比较大的,只能拿来测试练练手,土豪随意。

  3. 在Windows下

  也是用的官方的ToolBox,正如前文所述,它需要在VirtualBox下运行一个虚拟机,所以我们就在这个虚拟机中找我们的docker就行了。废话不多说,直接看图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值