Docker 笔记

作者: sunqiang | 来源:发表于2017-03-19 23:11 被阅读192次

    简介

    Docker对于运维的意义在于通过镜像容器进行快速的部署。对于我而言则是Windows,Mac OSX和Ubuntu的环境统一。只需要专注与应用。

    Macbook安装Docker

    安装阿里云加速器

    • 复制地址您的专属加速器地址,将地址填入Docker的配置中,路径如下:Preferences–>Daemon–>Basic–>Registry mirrors,然后重启

    Windows安装Docker

    1.安装docker-toolbox

    官方文档

    1. 下载安装docker-toolbox
    2. 启动docker-quickerstart-terminal

    有时会遇到boot2docker.iso不是最新,连接github下载失败的情况;可通过迅雷直接将boot2docker.iso下载到本地后,放入指定文件目录解决

    1. 测试是否安装成功:在终端中输入
    docker run hello-world
    

    Docker 镜像命令

    存出镜像 docker save

    docker save -o hello-world.tar hello-world:latest
    

    载入镜像 docker load

    docker load --input hello-world.tar
    

    删除镜像

    • 首先删除依赖镜像的容器
    docker rm <container id>
    
    • 删除镜像
    docker rmi <image id>
    

    Docker 容器命令

    新建容器

    docker create -it hello-world:latest
    

    启动容器

    docker start <container id>
    

    新建并启动容器

    docker run
    #-t 表示打开伪终端
    #-i 让容器的标准输入打开
    

    守护状态运行容器

    docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done
    #-d 守护状态运行 
    

    使用docker logs 获取容器输出信息

    终止容器

    docker stop <container id>
    

    进入守护状态的容器

    attach
    exec
    nsenter
    

    删除容器

    docker rm <container id>
    

    强制删除容器

    docker rm -f <container id>
    

    导出容器

    docker export <container id>>target.tar
    

    导入容器

    cat target.tar |docker import - <repository>:tag 
    

    docker 仓库命令

    登录

    docker login
    

    搜索镜像

    docker search keyword
    

    下载镜像

    docker pull centos
    

    从国内Docker pool下载

    docker pool dl.dockerpool.com:5000/ubuntu:12.04
    

    基于已有的镜像创建镜像

    docker commit
    #docker commit -m 'my comment' -a 'sunq' <container-id> repo:tag
    

    数据卷

    使用DaoCloud镜像源

    获取加速器连接

    docker-machine ssh default
    sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile
    exit
    docker-machine restart default 
    

    Docker安装Caffe

    方法一:手动安装

    1. 下载Ubuntu
    docker pull ubuntu:16.04
    
    1. 新建启动容器
    sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_caffe -i -t ubuntu:16.04 /bin/bash
    

    建立本地与容器数据卷的映射

    sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_caffe -i -t -v /data:/data ubuntu:16.04 /bin/bash
    
    1. 执行apt-get安装基础软件
    • 安装vim
    apt-get update && apt-get install -y vim
    #安装ananconda需要bzip2
    apt-get install -y bzip2
    
    1. 按照Dockerfile安装剩余软件
      通过Github中Caffe的dockerfile可安装剩余软件

    方法二:直接利用Dockerfile生成镜像

    1. Github下载Dockerfile
    2. 在dockerfile所在目录执行
    docker build . -t ubuntu_caffe_cpu
    

    Docker中Ubuntu安装git

    apt-get update && apt-get install -y git
    

    Docker安装使用juypter notebook

    1. 内部安装
    pip install jupyter
    jupyter notebook --generate-config
    

    修改.jupyter/jupyter_notebook_config.py

    # Notebook config
    c = get_config()
    c.IPKernelApp.pylab = 'inline'
    c.NotebookApp.ip='*'
    c.NotebookApp.open_browser = False
    c.NotebookApp.password = u'sha1:生成填写'
    c.NotebookApp.port = 8888

    1. 保存镜像
    docker commit -a 'sunq' -m 'add remote access to jupyter notebook' <container-id> caffebookcpu:latest
    
    1. 启动虚拟机
    docker run --name 'caffebook' -it -p 8888:8888 -v /Users/sunq/docker/caffedata:/workspace caffebookcpu bash
    

    在bash中运行

    jupyter notebook
    
    1. 在浏览器中访问
      http://localhost:8888
      如果使用了docker-toolbox中的docker-machine,则localhost替换为对应的docker-machine的ip

    虚拟机

    登录虚拟机

    docker-machine ssh default
    

    优化

    Windows下修改虚拟机的虚拟硬盘位置(C盘到D盘)

    • 停止虚拟机
    • 打开virtualbox,复制虚拟盘disk.vmdk到D盘
    • 修改虚拟硬盘位置

    参考

    相关文章

      网友评论

        本文标题:Docker 笔记

        本文链接:https://www.haomeiwen.com/subject/efnvnttx.html