zoukankan      html  css  js  c++  java
  • Docker基础入门实践

    原文地址

    基本概念

    Docker三个基本概念

    • 镜像(Image)
    • 容器(Container)
    • 仓库(Repository)

    镜像

    镜像可以理解为只读模板,如包含一个centos操作系统环境

    容器

    Docker利用容器来隔离和运行应用,容器是从镜像创建的运行实例

    注:镜像是只读的,容器在启动时创建一层可写层做为最上层

    仓库

    集中存放镜像文件的地方

    Docker安装

    CentOS安装Docker

    CentOS6

    $ yum install epel-release
    $ yum -y remove docker
    $ yum install docker-io
    

    CentOS7

    $ yum install docker
    

    启动

    $ service docker start
    

    随系统自启动

    $ chkconfig docker on
    

    帮助

    输入$ docker会列表相关命令和介绍如何查看帮助

    镜像

    获取镜像

    $ docker pull registry.aliyuncs.com/acs-sample/centos
    

    镜像地址格式为[REGISTRYHOST/][USERNAME/]NAME[:TAG]

    • 注册服务器:registry.aliyuncs.com
    • 仓库:acs-sample/centos
    • 标记:lastest

    查看镜像

    $ docker images
    

    出现如下信息

    REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    registry.aliyuncs.com/acs-sample/centos   latest              bf8055dc372f        6 weeks ago         196.6 MB
    
    • 仓库:来自哪个仓库
    • 标记:通过tag来区分版本,如centos6、centos7
    • 唯一ID
    • 创建时间
    • 大小

    创建镜像

    可以从DockHub获取已有镜像或通过dockerfile来创建

    修改镜像

    通过docker commit来实现

    步骤:

    1.启动容器

    $ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash
    [root@1ca39db81ee1 /]#
    

    2.安装wget,成功exit退出

    $ yum install wget
    

    3.提交更改,如果不指定tag会覆盖原有镜像

    $ docker commit -m 'add wget' -a 'by xqh' 1ca39db81ee1 registry.aliyuncs.com/acs-sample/centos:2```
    
    4.查看镜像,tag=2的包含wget的镜像已经生成
    
        REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
        registry.aliyuncs.com/acs-sample/centos   2                   1ca39db81ee1        57 seconds ago      255.7 MB
    
    **修改Tag**
    
    

    $ docker tag registry.aliyuncs.com/acs-sample/centos:2 test```

    REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    registry.aliyuncs.com/acs-sample/centos   2                   1ca39db81ee1        16 minutes ago      255.7 MB
    test                                      latest              1ca39db81ee1        16 minutes ago      255.7 MB
    

    上传镜像

    把自己的镜像通过docker push上传到仓库

    导出和导入

    $ docker save -o centos-test.tar registry.aliyuncs.com/acs-sample/centos:2
    $ docker load -i centos-test.tar
    

    删除镜像

    docker rm来移除本地镜像,移除镜像前要先移除依赖这个镜像的容器

    容器

    新建并启动

    新建并启动docker run,如

    $ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash
    

    其中-t选项让docker分配一个伪终端,-i让容器的标准输入保持打开

    启动已终止容器

    docker start来启动一个已经停止的容器

    后台运行容器

    docker run -d来实现,如

    $ docker run -d --name test registry.aliyuncs.com/acs-sample/centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
    

    docker ps来查看启动容器信息

    [root@iZ23g3sxtunZ ~]# docker ps
    CONTAINER ID        IMAGE                                     COMMAND                CREATED             STATUS              PORTS               NAMES
    f23f49f7269c        registry.aliyuncs.com/acs-sample/centos   "/bin/sh -c 'while t   3 seconds ago       Up 2 seconds                            test
    

    docker logs来查看容器输出信息

    [root@iZ23g3sxtunZ ~]# docker logs test
    hello world
    hello world
    hello world
    

    终止容器

    通过docker stop来终止容器,如

    $ docker stop test
    

    docker ps -a可以查看终止状态的容器

    [root@iZ23g3sxtunZ ~]# docker ps -a
    CONTAINER ID        IMAGE                                     COMMAND                CREATED             STATUS                       PORTS               NAMES
    f23f49f7269c        registry.aliyuncs.com/acs-sample/centos   "/bin/sh -c 'while t   4 minutes ago       Exited (137) 4 seconds ago                       test  
    

    进入容器

    docker attach进入容器当中

    导入和导出

    docker exportdocker import导出和导入容器

    删除容器

    docker rm来删除一个终止状态的容器

    仓库

    登录

    登录官方仓库不需要指定地址

    $ docker login
    $ docker login --username=xxx@aliyun.com registry.aliyuncs.com
    

    搜索镜像

    docker search命令查看仓库中的镜像,如查询被收藏10次以上的centos镜像

    [root@iZ23g3sxtunZ ~]# docker search -s 10 centos
    NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    centos                          The official build of CentOS.                   1947      [OK]       
    jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / SCL/EPEL/IUS Repos /...   15                   [OK]
    jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   13                   [OK]
    

    下载和上传镜像

    docker pulldocker push命令来下载和推送镜像,如

    $ docker pull registry.aliyuncs.com/xqh/centos6-sshd
    $ docker push registry.aliyuncs.com/xqh/centos6-sshd
    

    私有仓库

    指用户搭建一个本地仓库供私人使用

  • 相关阅读:
    $this是什么意思-成员变量和局部变量的调用
    神经网络 ML08 c-d-e
    机器学习笔记 ML01c
    虚函数
    C++有哪几种情况只能用初始化列表,而不能用赋值?
    C++ 的 I/O
    引用
    宏定义 #define 和常量 const 的区别
    怎么设置才能让外网ip可以访问mysql数据库[转]
    大师的框架面试总结[转]
  • 原文地址:https://www.cnblogs.com/xqhppt/p/5207578.html
Copyright © 2011-2022 走看看