码迷,mamicode.com
首页 > 其他好文 > 详细

关于docker使用的几个小问题

时间:2017-10-08 10:15:54      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:att   bcf   rmi   virtual   gae   nvl   csv   文件   cgi   

由于刚接触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镜像站点,就可以看到自己的镜像加速地址,阿里云的手册中有各个环境下的配置方法。这里给比较懒的同学推荐中科大的镜像加速地址:

  • 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
  • Linux下配置镜像加速器(Ubuntu16.04)
    • 参照阿里云配置docker的daemon.json文件:
vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
    • 结果重启服务报错: 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

 

关于docker使用的几个小问题

标签:att   bcf   rmi   virtual   gae   nvl   csv   文件   cgi   

原文地址:http://www.cnblogs.com/mar-q/p/7636424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!