美文网首页
学习Docker

学习Docker

作者: 潇Shawn纹 | 来源:发表于2017-03-19 13:20 被阅读0次

    学习Docker

    @(存笔记)


    [TOC]

    For Win

    官方建议使用 Docker Machines 的实现。

    常用命令

    docker images # 列出所有镜像
    docker ps # 列出运行的容器
    docker ps -a # 列出所有容器
    docker run --name test ubuntu  # 将名为 ubuntu 的镜像启动生成容器,run命令的参数要在镜像名 ubuntu 之前
    docker run -d ubuntu # 将名为 ubuntu 的镜像启动生成容器,并将改进程挂到后台运行
    docker rm $(docker ps -q -a) # 一次性删除所有的已停止的容器,
    docker rmi $(docker images -q) # 一次性删除所有的镜像
    docker commit <CONTAINER ID> newimage # 将一个容器提交生成一个新的容器
    docker images |grep none |awk '{print $3}'|xargs docker rmi # 删除所有None镜像
    docker rmi $(docker images -q -f dangling=true) # 删除虚悬镜像<none>
    

    Dockerfile语法

    构建镜像时,是Docker的客户端(本机环境)给服务器端(Docker引擎,可以是在本机——通常开发时是在本机,也可以是远程主机)要指定一个上下文目录,可以理解为指定了一个本地的目录供服务器端操作。服务器端仅能操作该目录及其子目录。这就是为什么COPY ../path/code /var/codeCOPY /srv/path/code /srv/code会提示其路径无效。COPY ./code /var/code意为指定了上下文目录下的/code 目录夹映射到镜像的/var/code目录,而不能通过COPY ../code /var/code指定上级目录。因为上级目录已经不属于上下文目录的控制范围。

    COPY

    FROM python:3.5 # 使用python:3.5作为基础镜像
    COPY ./code /var/code   # 将上级目录映射到镜像内路径
    WORKDIR /var # 之前默认的工作目录是 /,在这命令之后是 /var
    ENV ["python", "./code/foo.py"] # 容器启动后默认执行的命令
    

    构建镜像

    基本的构建命令

    docker build -t account/easyctp:tag .
    

    Dockerfile就在当前目录时,直接指定Dockerfile所在路径.
    在调试时,如果构建镜像有问题,尝试使用--no-cache无缓存模式调试。

    交互模式

    注意参数的顺序

    docker run --rm -it ubuntu /bin/bash
    

    采用交互模式-it进入ubuntu之后,启动/bin/bash作为交互工具。

    启动参数

    映射卷时,通常需要指定当前目录。不能直接使用.,而是要使用$PWD。并且注意要使用大写

    docker run -v $PWD:/var/code ubuntu
    

    Save 和 Export 的区别

    原文

    相关文章

      网友评论

          本文标题:学习Docker

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