zoukankan      html  css  js  c++  java
  • docker 在windows上的使用

    Docker ToolBox 安装
    1、首先,安装Docker ToolBox,其中包含了Docker三剑客: docker , docker-machine 和 docker-compose .
    安装完成之后包含了以上命令,并且会安装Oracle的Vm软件VirtualBox,Docker容器的主机将会运行在其中.
    创建Docker虚拟机主机
    安装完之后,有默认的镜像文件 C:Program FilesDocker Toolboxoot2docker.iso,将其拷贝至自己用户名下默认目录 C:UsersBenjamin.dockermachinecache\, docker-machine默认使用这个目录来创建虚拟主机.有些情况下,boot2docker.iso显示是一个压缩包,也可以直接拷贝使用。
    2、打开Docker Toolbox安装终端 Docker Quickstart Terminal ,首次运行会自动创建虚拟主机, 如未自动创建成功可以执行以下命令来创建默认的虚拟主机:
    docker-machine rm default docker-machine create -d virtualbox default
    等待虚拟机创建完成(可以使用VirtualBox来查看虚拟机的状态).
    3、调整虚拟主机相关配置
    Docker虚拟主机创建完毕之后,还需要配置一些参数才能正常使用.
    以下几项是需要登陆到虚拟机中进行调整的内容,登陆方式为:
    docker-machine ssh default
    如果不想使用 Docker Quickstart Terminal , 可以在登陆之后调整 docker 用户的密码 ,然后就可以使用一般的ssh客户端,如xShell等来登陆虚拟主机.
    sudo passwd docker
    docker的运行参数配置使用 daemon.json 来进行配置
    本地镜像设置
    修改 daemon.json (如果没有则创建一个新的):
    sudo vi /etc/docker/daemon.json
    修改配置为:
    { "insecure-registries" : ["xxxx.com"] ,
    }
    也可以使用在线的阿里云或者docker hub上的镜像,需要配置mirror。
    4、重启 docker 使配置生效:
    sudo /etc/init.d/docker restart
    查看 docker info, Insecure Registries列表中应当包含 xxxxxx.com.
    如果重启失败,可以在 /var/log/docker.log 中查看日志进行相应的调整.
    配置了本地镜像之后,即可使用本地镜像拉取所需要的镜像文件,如:
    docker pull registry.xxxxxxxxx/python:3.6.2
     
    TLS禁用
    在Windows上使用Docker的其中一个目的是使其与PyCharm结合,形成Python代码的解释器,避免重复的Python解释环境搭建的问题,同时保持Windows开发环境和部署环境所用的Python库的一致性.
    默认的docker-machine包含了TLS的认证,虽然能保一定的安全性,但是这导致PyCharm使用Docker的效率很低(目前尚未找到解决版本),因此,我们只能使用不使用TLS认证的docker.
    登陆到虚拟主机中,调整 DOCKER_TLS 环境变量:
    sudo vi /var/lib/boot2docker/profile
    将 DOCKER_TLS 设置为 no :
    DOCKER_TLS=no
    此项在关机后会失效,开机的时候注意设置
    修改完成后重启 docker.
    注意: 禁用了TLS 后 docker-machine 不再能获取到对应的信息了.
    这时候要继续使用docker命令,需要调整环境变量,
    环境变量调整后 docker 命令又可以继续使用了.
    虚拟主机共享目录
    默认的Docker虚拟主机自动创建了一个用户目录的共享文件夹,如果没有的话需要自己创建.
    打开 VirtualBox 的管理工具,编辑共享文件夹:
    其中 /c/User/ 是默认添加的,后面可以自己添加盘符和文件路径
    重启虚拟主机,然后就可以在虚拟主机上看到相关目录了:
    docker-machine restart default
     
    命令详解:
       attach    进入一个容器
        build     从Dockerfile编译
        commit    提交容器
        cp       从容器内复制文件到指定的路径上
        create    创建容器
        diff      可以列出容器内发生变化的文件和目录
        events    从服务器拉取个人动态,可选择时间区间
        exec      进入容器
        export    将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚
        history    查看指定镜像的创建历史
        images    查看镜像列表
        import    从归档文件(支持远程文件)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚
        info      显示系统信息
        inspect    查看容器底层信息
        kill      结束一个正在运行的容器
        load      从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚
        login     登录Docker HUB
        logout    退出Docker HUB
        logs      打印出容器的标准输出
        port      映射NAT的端口
        pause     暂停容器
        ps       列出容器
        pull      下载一个镜像
        push      将镜像推送至远程仓库,默认为 Docker Hub
        restart    重启容器
        rm       删除容器
        rmi      删除镜像
        run      运行一个新容器
        save      保存镜像
        search    搜索镜像
        start     启动容器
        stop      停止容器
        tag      镜像改名
        top      查看容器进程
        unpause    恢复暂停的容器
        version    查看版本
        wait      阻塞对指定容器的其它调用方法,直到容器停止后退出阻塞
     
           -i    #允许在容器进行交互
            -t    #分配伪tty终端
            -d    #在后台运行容器
            -P    #标示通知Docker所需的网络端口映射从主机映射到我们的容器内
            -h    #指定容器的hostname
            -e    #设置容器的环境变量
            -a    #stdin 指定标准输入输出内容类型,可选 STDIN/STDOUT / STDERR 三项
            -w    #指定工作目录
            -u    #指定用户名id
            -m    #指定内存
       
            --env-file=[]              从指定文件读入环境变量
            --restart=always        当容器推出时,自动重启容器
            --restart=on-failure:5    当容器推出代码为非0时,docker会尝试自动重启该容器,最多重启5次
            --name                     指定容器名,容器名在整个docker环境中必须唯一
            --dns                      指定dns
            --cpuset=""                绑定容器到指定CPU运行
            --net="bridge"             指定容器运行的网络模式
     

  • 相关阅读:
    window7环境下VMWare自定义安装Linux虚拟机完全教程
    Extjs的GridPanel分页前后台完整代码实例
    python数据持久存储:pickle模块的基本使用
    一个 11 行 Python 代码实现的神经网络
    Hadoop入门实例——WordCount统计单词
    Linux环境搭建Hadoop伪分布模式
    函数
    循环
    docker环境下gitlab配置ci
    docker部署mysql配置过程记录
  • 原文地址:https://www.cnblogs.com/chandb/p/7616528.html
Copyright © 2011-2022 走看看