zoukankan      html  css  js  c++  java
  • Docker 容器与镜像

    docker image

    基础镜像: 没有父镜像的镜像
    镜像获取:sudo docker pull ubuntu:12.04 == sudo docker pull registry.hub.docker.com/ubuntu:12.04

    源配置:
    {"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}
    该链接为中科大加速器地址,无需注册。
    执行命令生效
    systemctl daemon-reload
    systemctl restart docker

    容器启动:

    sudo docker run -t -i ubuntu:14.04 /bin/bash

    容器更改提交:

    docker tag ubuntu:15.10 runoob/ubuntu:v3 可以对这个版本打标签,打完标签后会生成新的镜像
    sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
    其中,-m 来指定提交的说明信息 -a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。

    Dockerfile (每一条指令都是镜像的一层)
    # This is a comment
    FROM ubuntu:14.04 #指定基础镜像
    LABEL version="1.0"  为镜像指定标签
    MAINTAINER "donghao" 指定作者
    ENV <key>=<value> ... 指定虚拟环境
    语法有两种
    1. ENV <key> <value>
    2. ENV <key>=<value> ...
    两者的区别就是第一种是一次设置一个,第二种是一次设置多个
    
    Docker容器
    容器的启动

    docker run ubuntu:14.04 /bin/bash 'docker started'
    docker run -itd ubuntu:14.04 bash # 启动一个 bash 终端,允许用户进行交互
    -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开
    -d 守护态形式运行
    docker start containerID

    执行步骤
    检查本地是否存在指定的镜像,不存在就从公有仓库下载
    利用镜像创建并启动一个容器
    分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
    从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
    从地址池配置一个 ip 地址给容器
    执行用户指定的应用程序
    执行完毕后容器被终止
    
    导出和导入容器

    导出:
    sudo docker export 7691a814370e > ubuntu.tar
    导入:
    cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
    URL形式导入:
    sudo docker import http://example.com/exampleimage.tgz example/imagerepo

    删除长在运行的容器

    docker rm -f xxx

  • 相关阅读:
    pcie dma
    Virtual Network
    hashcode与equals
    java四类八种基本数据类型
    jdk 1.7 LinkedList 源码分析
    jdk 1.7 ArrayList 源码分析
    httpclient发送xml字符串(推送)
    HttpClient使用Post和Get提交参数
    httpClient发送Json请求,结果返回Json.
    HttpClient
  • 原文地址:https://www.cnblogs.com/donghaoblogs/p/12172434.html
Copyright © 2011-2022 走看看