zoukankan      html  css  js  c++  java
  • docker

    教程

    http://dockone.io/article/101

    http://www.runoob.com/docker/docker-hello-world.html

     1、什么是docker?

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

    简单点理解,就类似于虚拟机(VMware),只不过VMware虚拟的是整个操作系统,而docker轻量级些,虚拟的是一个进程。

    2、docker架构

    Docker 镜像(Images)

    Docker 镜像是用于创建 Docker 容器的模板。

    Docker 容器(Container)

    容器是独立运行的一个或一组应用。

    Docker 客户端(Client)

    Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。

    Docker 主机(Host)

    一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

    Docker 仓库(Registry)

    Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

    Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

    Docker Machine

    Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

    Docker 容器通过 Docker 镜像来创建。

    容器与镜像的关系类似于面向对象编程中的对象与类。

    Docker面向对象
    容器 对象
    镜像

    简单点理解就是:docker服务器提供的服务,docker客户端连接docker服务器,执行具体的操作。例如:docker run centos6,docker服务器通过docker镜像运行一个容器(centos6)。

    3、安装docker

      查看http://www.runoob.com/docker/ubuntu-docker-install.html

    4、docker的常用命令

           docker --help 查看docker帮助文档

      docker version  查看docker版本

           docker info  查看docker详细信息

      镜像:

                  docker 对镜像的处理跟git还是非常相似的

        docker images  查看本地镜像     

          REPOSTITORY:表示镜像的仓库源

          TAG:镜像的标签

          IMAGE ID:镜像ID

          CREATED:镜像创建时间

          SIZE:镜像大小

                         同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSTITORY:TAG 来定义不同的镜像。  

                    image_name = [REPOSITORY + TAG] 或者 [IMAGE ID]

                  docker search [image_name]  查找镜像,例如 docker search centos6

                  docker pull [image_name]  下载镜像,例如 docker pull docker.io/guyton/centos6

                  docker commit [container_id]  根据容器状态,创建一个新的镜像。登录容器后,我们经常需要安装一些软件,但是如果我们不保存容器状态,直接退出。那么下次docker run centos6的时候,是根据centos6这个镜像来创建一个新的容器,自然不会有我们安装的软件。所以如果你安装了一些软件,要想下次登录的时候还可以使用这些软件,第一种方式:通过 docker ps -l获取容器id,docker commit 容器id创建一个新的镜像。第二种方式,不要退出容器,docker rm 容器id。

                 docker push [image_name] 推送镜像到仓库

                 如果你向执行docker push操作,那么必须到在DockerHub上创建账号:https://hub.docker.com/,然后docker login 登录

                 docker tag [image_name] [your_tag_name]

           容器:

                 docker run [image_name]   根据镜像启动一个新容器

                         例如:docker run ubuntu:15.10 /bin/echo "Hello world"  #如果不指定tag,tag默认为最新版本,启动一个ubuntu容器,并执行一条语句、

                                    docker run -i -t ubuntu:15.10 /bin/bash  #运行交互式的容器  

                -t:在新容器内指定一个伪终端或终端。

                -i:允许你对容器内的标准输入 (STDIN) 进行交互。

                                   docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" #启动容器(后台模式),如果想要查看输出,使用docker log

                                             -d:让容器在后台运行。

                                   docker run -d -P training/webapp python app.py

                -P:将容器内部使用的网络端口映射到我们使用的主机上

                  通过docker ps/docker port [container_idcontainer_name] 查看端口信息,0.0.0.0:32768->5000/tcp  :将主机端口 32768映射到docker容器的5000端口

                                               docker run -d -p 5000:5000 training/webapp python app.py #指定端口映射地址

                  docker log [container_idcontainer_name] 查看容器输出

                  docker ps  #查看running的容器进程信息

                  docker stop/start/restart [container_idcontainer_name] #停止/启动/重启容器

                  docker stats #查看running容器的内存、cpu使用率等信息

                  docker rm [container_idcontainer_name] #删除一个容器,在删除容器前必须停止容器(docker stop)

         

               

     
     
  • 相关阅读:
    Android app 简单的电话拨号器
    JavaWEB开发中的/到底代表什么
    springmvc json
    ForeignKey.on_delete
    django 实现指定文件合并成压缩文件下载
    常用SQL的优化
    数据库 两个简单实用的表级优化方法
    一天只能触发一次操作
    Ajax 生成流文件下载 以及复选框的实现
    django Q和F查询
  • 原文地址:https://www.cnblogs.com/shysky77/p/7421523.html
Copyright © 2011-2022 走看看