zoukankan      html  css  js  c++  java
  • docker基本概念2

    1 docker 容器,容器可以被创建、启动、停止、删除、暂停等

    容器是镜像的一个运行实例,不同的是,他有额外的可写文件层。提供了独立的应用环境。

    容器的实质是进程,与宿主机进程不同的是有自己的独立的命名空间。是运行在一个隔离的环境里。

    镜像和容器都是分层存储的,容器以镜像为基础层,在其上创建一个当前容器的存储层。

    说明:docker指导原则:容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有文件操作应该使用数据卷或者绑定宿主目录,在这些位置的读写操作会跳过容器存储层,直接对宿主进行读写操作,其性能和稳定性更高。

    定位到一个容器或者镜像可以是:镜像短ID、镜像长ID、镜像名、镜像摘要

    1.1 创建容器,使用 docker create

    docker create -it mysql

    新建的容器处于停止状态,可以使用 docker start 命令来启动

    方法二:新建并启动容器

    docker run mysql //相当于是 docker create mysql, docker start两条命令
    docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

    --rm 表示容器停止后将其删除。

    docker run机制

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

    1.2 查询容器的日志信息

    docker logs [container ID]

    1.3 终止容器

    docker stop [--time=10] containerId

    1.4 重启容器

    docker restart containerId

    2 进入容器,在使用 -d 参数时,容器后台运行,如果要进入容器进行操作可以使用:attach/exec/nsenter

    2.1 使用 attach

    当多个窗口同时使用attach 到同一个容器时,所有窗口会同步显示。

    2.2 使用 exec

    docker exec -ti 243c3253 /bin/bash

    -t:让容器分配一个终端

    -i:让终端保持打开状态进行交互操作

    3 删除容器,使用命令 docker rm CONTAINER[CONTAINER...]

    4 导出导入容器实现容器迁移

    docker export ce5 > test_for_run.tar   //导出容器
    cat test_for_run.tar | sudo docker import - test/ubuntu:v1.0  //从本地文件导入容器

    说明:docker load 命令导入镜像存储文件到本地镜像库,docker import 导入一个容器快照到本地镜像库。容器快照文件没有历史记录和元数据信息。从容器快照文件导入时可以重新指定标签等元数据。

    5 docker 命令可以组合使用,比如要删除镜像为 redis 的镜像,可以使用如下命令

    $ docker image rm $(docker image ls -q redis)
  • 相关阅读:
    使用VS2012开发基于Office 2013的AddIn程序
    Silverlight Virtualization Overview
    解除.NET中虚拟路径的疑惑
    T4 Template Overview
    Silverlight ItemsControl详细解析+解惑
    C#多线程词频统计修改
    C#多线程词频统计
    通讯录从诺基亚手机同步至iphone
    验证邮箱合法性的一些测试样例
    九度1131:合唱队形
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/8365094.html
Copyright © 2011-2022 走看看