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??

Docker Commands的更多相关文章

  1. useful commands for docker beginner

    You may want to add my wechat public account or add my technical blog's RSS feed This list is meant ...

  2. Install Docker on Ubuntu

    Install Docker on Ubuntu Estimated reading time: 17 minutes Docker is supported on these Ubuntu oper ...

  3. Install Docker on Mac OS X(转)

    Install Docker on Mac OS X You can install Docker using Boot2Docker to run docker commands at your c ...

  4. docker offical docs:Working with Containers

    enough ---------------------------------------------------------------------------------- Working wi ...

  5. 【微服务轻量化容器技术相关】同事分享的Docker学习汇总

    还没时间去练习: Docker commands: docker images (list all image on this host) docker ps -a ( list all contai ...

  6. Docker 命令(二)

    Docker 入门 启动docker systemctl start docker 帮助命令 docker --help docker [Commands] --help   例:docker run ...

  7. Docker - 在Ubuntu16.04中安装Docker CE

    Get Docker for Ubuntu Check system version root@Ubuntu16:~# uname -a Linux Ubuntu16 4.8.0-36-generic ...

  8. Docker And Swarm Mode(一)

    (一)节点的创建和配置 前言  虽然工作中一直在用Docker和Docker Swarm,但是总感觉有点陌生,总想自己亲手来写写和配置Docker 容器相关的事情,这篇文章主要是参考了Los Tech ...

  9. Docker教程:dokcer machine的概念和安装

    http://blog.csdn.net/pipisorry/article/details/50920982 Docker machine介绍 做为Docker容器集群管理三剑客之一的Docker ...

随机推荐

  1. 前端基础:JavaScript DOM对象

    JavaScript DOM对象 通过HTML DOM,可以访问JavaScript HTML文档的所有元素. 一.HTML DOM(文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(D ...

  2. 【OpenGL】使用FreeType库加载字体并在GL中绘制文字

    FreeType用起来比较麻烦,这里写了一份简单的示例代码,仅供参考. 实现了FT库生成字符位图,并上传到GL纹理. 实现了字符位图缓存功能,多个字符图像保存在同一个纹理中. 实现了简单的字体管理框架 ...

  3. C++解析(3):布尔类型与三目运算符

    0.目录 1.布尔类型 2.三目运算符 3.小结 1.布尔类型 C++中的布尔类型: C++在C语言的基本类型系统之上增加了bool C++中的bool可取的值只有true和false 理论上bool ...

  4. bzoj3173

    Description 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? Input 第一行一 ...

  5. msf下的LNK漏洞(CVE-2017-8464)利用

    0x01 前言 RCE漏洞存在于Windows处理LNK文件的环节.攻击者利用漏洞可以获得与本地用户相同的用户权限.被使用此漏洞攻击时,用户权限较少的账户相较管理员权限的用户受到的影响更小. 攻击者可 ...

  6. POJ.3894 迷宫问题 (BFS+记录路径)

    POJ.3894 迷宫问题 (BFS+记录路径) 题意分析 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, ...

  7. 解题:POI 2009 TAB

    题面 这也算是个套路题(算吗)?发现换来换去每行每列数的组成是不变的,那么就把每行每列拎出来哈希一下,复杂度$O(Tn^2log$ $n)$有点卡时=.=. 然而正解似乎不需要哈希,就像这样↓ ;i& ...

  8. 【翻译】InterlockedIncrement内部是如何实现的?

        Interlocked系列函数可以对内存进行原子操作,它是如何实现的?     它的实现依赖于底层的CPU架构.对于某些CPU来说,这很简单,例如x86可以通过LOCK前缀直接支持Interl ...

  9. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) A B C D 水 模拟 二分 贪心

    A. Is it rated? time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  10. Adreno GPU Profiler工具使用总结

    Adreno Profiler介绍 Adreno Profiler 是高通公司开发的一款针对运行在高通骁龙处理器上用于图形和GPGPU技术应用的性能分析和帧调试工具.工具本质上是一个OpenGL ES ...