win7 安装docker 遇到的坑

为什么使用Docker Toolbox

Docker在Windows上使用有两种方式,一是利用VirtualBox建立linux虚拟机,在linux虚拟机中安装docker服务端和客户端,二是利用Windows的Hyper-v虚拟化技术,直接在Windows上安装docker服务端和客户端。WIndows7不支持Hyper-v,所以只能采用Docker Toolbox的方式使用Docker。下载地址:https://docs.docker.com/toolbox/overview/

安装

安装过程很简单,保持默认选项,直接【next】即可。VirualBox和Git如果已经安装,也可以不选

 

安装完成后,桌面上会多出3各图标,如下。其中VirtualBox提供了linux虚拟机的运行环境,Docker Quickstart Terminal用于快速介入linux虚拟机,提供命令行交互,Kitematic是docker GUI很少用到。

 

启动

第一次运行Docker Quickstart Terminal时会进行Docker环境的初始化,会在VirtualBox中自动创建名字为【default】的linux虚拟机,再此过程中会用到boot2docker.iso镜像文件。默认情况下,启动程序会从GitHub上下载此文件的最新版,但由于文件相对较大且速度不给力,多数情况下会下载失败,造成Docker环境无法启动,如下图:

 

解决方法:

其实DockerToolbox安装文件自带了boot2docker.iso镜像文件,位于安装目录下(如C:\Program Files\Docker Toolbox) ,将此文件拷至C:\Users\Administrator\.docker\machine\cache目录下,然后在网络断开的情况下重新启动,便可初始化成功。如下图:

 

其中 【192.168.99.100】是VirtualBox中名字为【default】虚拟机的ip地址。

利用Xshell登录

Docker Quickstart Terminal使用起来不方便,可以使用XShell进行SSH登录Docker环境(其实就是远程访问default linux虚拟机)。

通过在PowerShell或cmd终端中执行【docker-machine ls】命令,可以看到虚拟机的地址,本机是192.168.99.100。

 

default虚拟机的默认用户名和密码

用户名:docker 
密码: tcuser

登录成功后的界面

 

更改虚拟磁盘存储位置

 虚拟机的默认存储位置是C:\Users\Administrator\.docker\machine\machines ,后期docke镜像文件会不断增加,为了给系统盘减负,最好将磁盘移动到其他位置。

  •  首先通过PowerShell或cmd终端中执行【docker-machine stop default】命令停止default虚拟机

  • 通过VirtualBox【管理】-》【虚拟介质管理】界面对虚拟磁盘进行复制

需要注意虚拟磁盘类型的选择

    

  •  为虚拟机添加新复制的虚拟磁盘,删除之前的dick

 

  • 通过PowerShell或cmd终端中执行【docker-machine start default】命令停止default虚拟机

 更改镜像仓库地址

  docker默认的镜像仓库地址是https://hub.docker.com/,但国内的下载速度太过缓慢,最好使用国内镜像,比如阿里云。

  首先需要注册阿里云账号,然后在https://cr.console.aliyun.com/页面的左侧可以看到【镜像加速器】选项

  

  在powershell或cmd中通过 【docker-machine ssh default】命令登录虚拟机(或使用设置好的XShell连接),执行如下命令:

1

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile

  然后重启default 

1

docker-machine restart default

 

>docker ps

报错:

Get http://127.0.0.1:2375/v1.20/containers/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

docker认为你并没有启动虚拟机

2、按照上一步操作docker的提示运行命令

>docker-machine env default

显示:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\Administrator\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"

显示结果就是你应该运行来配置环境变量的命令,docker帮你打印出来方便下一步执行

但是客官看得到,命令是export,这是linux下配置环境变量的命令而不是windows的

3、记得docker安装的时候有个安装可选项MSSYS-git UNIX tools吗,这个工具就是让你在windows下运行linux命令的工具,其实就是一堆linux命令的windows版,现在进入sh环境

>sh
4 sh: __git_ps1: command not found的解决办法 ---待验证

  就去gitbash的安装目录\Git\etc搜寻了一番,( 一般在在系统盘C:\Program Files\Git\etc)找到了如下文件:
bash.bashrc

其中有这么一行

# Set a default prompt of: user@host, MSYSTEM variable, and current_directory 
# PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n\$ '

我把PS1前面的#去掉,然后在输入sh,就没有报错了

5.再运行上面执行信息最后一条命令

6.idea win7 tcp 方式连不上的话,这里要把tcp改为https 才行

win7 安装docker 遇到的坑_第1张图片

转载:https://www.cnblogs.com/wangsongbai/p/9602489.html

从零开始通过idea插件将一个spring boot项目部署到docker容器里运行

实操:将一个spring boot项目部署到docker容器里运行

实验需要的环境:

腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud

第一步,安装操作系统

首先在腾讯云上安装一个干净的Ubuntu系统 
系统使用Ubuntu 16.04 64位 
这里服务市场虽然有docker,但是版本都太低(1.8.2左右),现在的一些镜像都不支持这些低版本的了,所以自己手动装个 
这里写图片描述 
腾讯云推荐使用ssh连接,配置好后就不用输入登入密码了 
这里写图片描述
秘钥可以在腾讯云上创建,也可以在Xshell上创建 
创建好密钥之后,腾讯云会给你一个私钥下载,这个应该保存好 
然后找到密钥,绑定到主机 
这里写图片描述 
然后在xshell里面建立ssh连接,把用户秘钥配置上去,就是腾讯云发给你的私钥 
这里写图片描述 
然后成功连接上 
这里写图片描述

第二步,搭建docker环境

由于网络的原因。。。推荐在DaoCloud里安装docker,国内镜像快

首先安装docker: 
登录到daocloud 
这里可以使用一键脚本,方便快捷 
下载地址,按照它的说明安装 
https://download.daocloud.io/Docker_Mirror/Docker 
这里写图片描述 
我使用了这个脚本安装docker 
这里可能会卡在-qq这个地方,这是网络的原因,因为是外链。。ctrl+c,在运行,多试多等待就可以了 
然后运行脚本 
这里写图片描述 
安装完成后,提示如果想用非root用户使用docker,应该将其加入docker组里面 
这里写图片描述 
把普通用户加入组后,查看docker版本,发现安装的是最新的版本,有点高。都18去了

然后配置镜像加速器(不然pull镜像会很慢) 
也是使用的daocloud 
地址: 
http://www.daocloud.io/mirror#accelerator-doc 
这里写图片描述
这里当时遇到了一个坑,由于使用的是腾讯云服务市场里的镜像(偷了装docker的懒),然后由于版本太低,它这个脚本是无法正常执行的,它好像需要1.12版本以上吧。。

然后愉快的pull images了,这里run了一个rancher(docker编排用的,图形化界面,方便管理) 
这里提供一个rancher的中文文档,有兴趣研究研究: 
http://rancher.com/docs/rancher/v1.6/zh/ 
这里写图片描述 
发现pull的很快 
需要注意docker的版本,不然安装rancher会出问题,这点文档里写的很清楚 
这里写图片描述
成功运行了rancher,当然,现在什么都还没配置,但是说明docker是安装好了的 
这里写图片描述

第三步,给docker开启远程访问

参考一份网上的资料 
这里写图片描述 
这里我把端口设置为了2375 
这里写图片描述 
然后保存文件,重启服务即可

需要注意的是,如果在centOS7上搭建的docker,这个远程连接应该这样配置

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
  • 1

这里写图片描述 
查看网络连接,发现2375端口已经被打开 
如果发现还是远程连不上,可以设置一些腾讯云的安全策略和防火墙

至此,在Ubuntu上搭建docker环境完成!

附:

由于我系统是win7的,所以也来试试安装docker,其实docker对win7的支持并不好(都是以虚拟机的形式运行的),推荐win10的系统

关于win7的安装 
首先下载Docker Toolbox

还是在daoyun下载的 
然后运行这个安装上去 
这里写图片描述 
这里也有个坑,需要注意virtualbox要5版本以上的,以往安装过ensp,有个4版本的virtualbox,所以当时没选virtualbox,所以会出问题 
这里写图片描述 
安装完成! 
如果点击这个会提示找不到bash,在属性里把自己的bash设置上去即可 
这里写图片描述 
更改c盘文件的路径 
运行起来,发现它的虚拟机默认位置在c盘 
这里写图片描述 
随着pull的image越来越多,c盘空间越来越少,所以我把虚拟机磁盘文件移动到了e盘 
在管理里面,找到虚拟介质管理器,选择move,移动到其他盘上 
这里不要直接文件操作,把disk.vmdk文件移动到其他盘,然后在导入,这样会报错,说uuid冲突的 
这里写图片描述 
然后配置镜像源 
在我的文档里找到config.json 
这里写图片描述 
这里写图片描述 
然后配置images源 
这里写图片描述 
成功运行docker!

第四步,在IDEA上安装docker插件

Idea中可以下载docker插件,功能强大 
官方文档 
https://www.jetbrains.com/help/idea/docker.html

在setting里找到这个插件,安装上去 
这里写图片描述
成功安装插件

这里写图片描述
点击+,新增一个docker服务器连接

需要注意的是win7的地址输入,是https,并且是2376端口!这点官方文档有写到 
这里写图片描述 
要输入相应的ip 
这里写图片描述 
win7的配置!!! 
这样子就可以啦 
同理,云服务器的,tcp连接,2375端口 
这里写图片描述 
连接成功 
这里写图片描述

第五步,在IDEA上操作docker

这里我准备把一个小实验放进docker容器跑

先写一个dockerFile 
这里写图片描述 
这里注意到add写的是相对路径,所以jar包要在docker目录下,不然build镜像的时候会找不到文件 
为了方便,干脆直接把dockerfile文件放在项目根目录里,然后写绝对路径找到打包好的jar包 

这里写图片描述 
这里写图片描述
这里给了一个前置任务,先打包为jar包,再构建image

配置好就可以run了 
这里写图片描述 
运行方式选择docker 
这里写图片描述
构建镜像中,由于是云服务器,这里上传镜像需要一段时间,还是蛮快的 
构建成功 
通过docker ps命令可以看到当前上传上去的镜像已经被运行 
这里写图片描述

成功访问云服务器! 
这里写图片描述 
Spring boot项目已经运行在docker上了!

补充: 
docker插件更新之后更加方便部署了 
选择dockerfile 
这里写图片描述 
给run built image打钩,然后绑定上端口,还可以预览命令行 
这里写图片描述 
这样配置好了之后,直接点idea的run,完成后云服务器就自动运行这个spring boot应用了

附:

Spring boot项目打包成docker image

没有这款插件也不要紧 
使用一个mvn plugin,可以构建docker image,前提是要安装docker环境


   com.spotify
   docker-maven-plugin
   0.4.13
   
      ${docker.image.prefix}/${project.artifactId}
      src/main/docker

      
      https://192.168.99.100:2376
      C:\Users\admin\.docker\machine\machines\default

      
         
            /
            ${project.build.directory}
            ${project.build.finalName}.jar
         
      
   

在win7环境下的配置,需要指定ip(因为是虚拟机) 
云服务器类似 
这里写图片描述
执行maven命令 
这里写图片描述 
这里写图片描述 
原理差不多,也是使用了一个插件,在package打包成jar包后,使用docker的mvn插件构建一个镜像

你可能感兴趣的:(笔记摘要)