• Docker Commands


    Docker Commands


    安装,以Ubuntu 14.04.3为例

    apt-get install docker.io
    

    注意安装之前需要更新系统

    列出曾经存在的容器

    docker ps -a
    

    列出正在执行的容器

    docker ps
    

    查看docker信息

    docker info
    

    查看宿主机上的镜像,Docker镜像保存在/var/lib/docker

    docker images
    

    从Docker hub 下载镜像

    docker pull ubuntu:latest
    docker pull ubuntu:12.04   //即从注册服务器registry.hub.docker.com 中的 ubuntu 仓库来下载标记为 12.04 的镜像
    

    启动一个容器

    docker run -i -t busybox /bin/bash                     //busybox 是 镜像<8c2e06607696>的的repository
    docker run -i -t 8c2e06607696 /bin/sh                //<8c2e06607696>是镜像
    

    image 列表举例:
    root@client:/home/andy# docker images

    REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
    master:5000/busybox latest 8c2e06607696 4 months ago 2.433 MB
    busybox latest 8c2e06607696 4 months ago 2.433 MB

    那么 镜像的 repository 是怎么来的呢?
    对于仓库 master:5000/busybox 来说,master:5000是注册服务器的地址,busybox是仓库名。

    启动或停止某个container

    docker start/stop container_id
    

    可以将container的变化作为一个新的镜像??

    docker commit
    

    在Dockerfile所在目录执行docker build创建镜像

    docker build -t docker_test .
    

    创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个。

    使用 docker commit 来扩展一个镜像比较简单,但它不容易在一个团队中分享它。我们可以使用 docker
    build 来创建一个新的镜像。为此,首先需要创建一个 Dockerfile,包含一些如何创建镜像的指令。
    Dockerfile 基本的语法是:

    使用 # 来注释
    FROM 指令告诉 Docker 使用哪个镜像作为基础
    接着MAINTAINER是维护者的信息
    RUN 开头的指令会在创建中运行,比如安装一个软件包,在这里使用 apt-get 来安装了一些软件
    利用 ADD 命令复制本地文件到镜像
    用 EXPOSE 命令来向外部开放端口
    用 CMD 命令来描述容器启动后运行的程序

    将制作的镜像上传到private registry

    docker tag test docker.example.com/test    //docker tag 命令来修改镜像的标签  docker tag 5db5f8471261 ouruser/sinatra:devel
    docker push docker.example.com/test
    

    启动本地 Registry

    docker run \
             -e SETTINGS_FLAVOR=dev \  #basic configuration using the local flavor
             -e STORAGE_PATH=/registry \
             -p 5000:5000 \
             registry
    

    或者

    docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/tmp/registry  -p 5000:5000 registry
    

    如果本地没有拉取过docker-registry,则首次运行会pull registry,运行时会映射路径和端口,以后就可以从/opt/data/registry下找到私有仓库都存在哪些镜像,通过主机的哪个端口可以访问。
    参数 -v /opt/data/registry:/tmp/registry 的作用是实现存储持久化。上面的例子中,上传的镜像将放到/opt/data/registry目录。

    问题

    • 如何将创建的image上传到自己私有的registry?
    • 怎么理解docker images的第一个列:REPOSITORY??
  • 相关阅读:
    单例模式的五种实现模式
    JAVA基础语法
    买卖股票的最佳时机 III
    leetcode 正则表达式 (动态规划)
    leetcode LRU缓存机制(list+unordered_map)详细解析
    leetcode 下一个排列(C++,STL源码解析)
    leetcode 编辑距离(动态规划)
    leetcode 字典序排数
    leetcode 字典序第K小数字
    leetcode 有效的括号(栈模拟)
  • 原文地址:https://www.cnblogs.com/zeweiwu/p/4747656.html
Copyright © 2020-2023  润新知