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. java中main函数怎么调用外部非static方法

    使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法. 举例如下: 测试函数(这是错误的): public class Test { public sta ...

  2. TCP/IP协议详解---概述

        工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...

  3. 关于kali linux系统的简单工具

    Linux系统中关于几个重要目录的原英文解释: /etc/: Contains configuration files of the installed tools /opt/: Contains M ...

  4. CODECHEF Chef and Churus 解题报告

    [CODECHEF]Chef and Churus Description 有一个长度为\(n\)的数组\(A\),有\(n\)个函数,第\(i\)个函数的值为\(\sum_{j=l_i}^{r_i} ...

  5. MapReduce(四) 典型编程场景(二)

    一.MapJoin-DistributedCache 应用 1.mapreduce join 介绍 在各种实际业务场景中,按照某个关键字对两份数据进行连接是非常常见的.如果两份数据 都比较小,那么可以 ...

  6. 网络编程----socketserver多并发实现、FTP上传多并发、udp协议套接字多并发

    一.socketserver多并发                                                              基于tcp的套接字,关键就是两个循环,一个 ...

  7. oracle 时间

    select to_char(to_date(sysdate,'yyyy-mm-dd'),'day') from dual; select to_date('2017-12-31','day') fr ...

  8. 在VS2010中使用Git【图文】

    http://blog.csdn.net/laogong5i0/article/details/10974285 在之前的一片博客<Windows 下使用Git管理Github项目>中简单 ...

  9. 【OpenCV】SIFT原理与源码分析:关键点描述

    <SIFT原理与源码分析>系列文章索引:http://www.cnblogs.com/tianyalu/p/5467813.html 由前一篇<方向赋值>,为找到的关键点即SI ...

  10. 实例讲解启动mysql server失败的解决方法

    MySQL 实例讲解启动mysql server失败的解决方法 来源: 作者: 发表于: 启动mysql server 失败,查看/var/log/mysqld.err 080329 16:01:29 ...