Docker实践记录(windows)

Docker

在自动化测试项目中通常会遇到这样的问题:自己本地的代码coding完成并且调试通过后,上传到代码托管平台,别人拉取下来一运行就各种报错,被人误会写的代码像手上粘屎了一样,非常尴尬,但是通常这一类问题都不是代码的原因,而是运行环境不一致造成的。
为了解决这一问题,leader引入了docker的概念。本文详细记录搭建docker环境并使用的过程。



什么是Docker?


关于这种概念性的东西我也写不出什么花来,相信没有什么比 官方文档 是更详细全面的。

了解更多你可以参考:

我试举一例为便于理解:要运输一批水果和化学物品,用一艘船正好全部装下,但是同时装下会导致水果可能被污染,无法食用。那就分两艘船来运,一艘专门放水果,一艘专门放化学物品,保证各自的质量不受影响的同时也造成了资源浪费。集装箱就很好的解决了这一问题,互相隔离,既保证互不影响又不会造成资源浪费,一艘船全部拉走。Docker就相当于该场景的集装箱,有效解决资源浪费问题。

Docker的安装


Win7 & Win8

因为官方不支持win10以下(2016年前)的微软系统,所以只能通过 docker toolbox使用Docker。本次教程在win7的基础上进行编写,win8应该大同小异,随缘了。

  • 首先下载安装,阿里云爸爸已经准备好了一切 点击查看 或者 网盘提取(mmkv)
  • 打开下载的exe文件,一路下一步,安装完成后桌面出现三个软件图标
1. Oracle VM VirtualBox :      虚拟机
2. Kitematic(Alpha) :          Docker 界面版本(不推荐使用)
3. Docker QuickstartTerminal : Docker 命令行环境

# Docker toolbox 内还包含:
Docker CLI :     客户端,用来运行docker引擎创建镜像和容器
Docker Machine : 可以在windows命令行中运行docker引擎命令
Docker Compose : 用来运行docker-compose命令
  • 点击启动 Docker quickstart进入命令行,第一次可能会有些慢,启动成功后输入docker --version验证是否安装成功。
    如图所示即为安装成功

Docker的使用


配置xshell访问Docker

  1. 默认会创建一台default的虚拟机,查看当前虚拟机信息:docker-machine ls
    虚拟机信息
  2. 新建xshell会话并配置会话信息,主机填写虚拟机的host即可
    xshell会话信息
  3. 用户名 docker,默认密码 tcuser,连接成功,正常使用
    xshell正常访问docker

配置国内镜像加速

有时直接从docker仓库拉取镜像会非常慢甚至断开,国内大部分镜像都有,所以需要配置下载地址为国内镜像,以daocould为例:

  1. 注册daocould
  2. 登录后点击加速器按钮
    加速器按钮
  3. 上拉页面找到windows的加速地址
    加速地址
  4. 连接到docker虚拟机,配置镜像加速
docker-machine ssh default  # 链接虚拟器,xshell已经连接可忽略该步
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=上一步获取的加速地址 |g" /var/lib/boot2docker/profile   # 配置加速地址
exit   # 退出
docker-machine restart default  # 重启虚拟机

镜像使用(以python环境为例)

  1. 首先查看python的镜像 docker search python:3.7冒号是指定python版本
    search
  2. 拉取镜像 docker pull python:3.7,此处冒号后面的3.7为标签[TAG],区分本地的版本,不加则为latest。因为之前配置国内镜像加速的原因,下载很快,稍等片刻
  3. 下载完成后查看当前所有镜像 docker images
    images
  4. 使用指定镜像创建容器 docker run -it python:3.7 /bin/bash参数使用请参考菜鸟教程,前缀名改变即为创建成功
    创建容器]
  5. 验证python环境
    python
  6. 安装vim(非必须)
  • 更新apt-get的源,复制如下命令到控制台执行:
mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list && \
    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && \
    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list && \
    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
  • 安装vim,直接安装可能报错,所以先更新了下
apt-get update && apt-get install vim -y

其他命令:

  • 退出镜像 exit
  • 删除镜像 docker rmi <images>
  • 查看所有容器(包括已停掉的容器) docker ps -a
  • 删除容器 docker container rm <container_id>

配置Pycharm连接docker环境

  1. 创建一个新的docker环境,进入settings -> Build,Exection,Deployment -> Docker,点击‘+’创建docker,默认配置就好,点击确定。
  2. 在运行页面链接docker,右键镜像可创建容器
    docker
  3. attached console一栏可输入命令进行交互
    交互命令
  4. 配置本地代码在docker上运行
    settings -> project -> Project Interpreter -> 设置按钮 -> add remote -> docker
    配置解释器
    点击NEW
    new docker
    勾选 Import credentials from Docker Machine,其余默认设置,点击确定,选择镜像名称,添加解释器后,选择docker环境的解释器即可运行。
    docker解释器
    注:此处我配置完成后,一直在转圈获取不到Image name,但是搜了好多教程以及参照官方文档,这块都是直接获取到的,暂未解决(困惑脸:)。

猜你喜欢

转载自blog.csdn.net/lan_yangbi/article/details/83792025