• Docker学习计划二:基本配置


    来源:http://www.ityouknow.com/docker/2018/03/07/docker-introduction.html

    Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。

    程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

    为什么要使用Docker?

    1、更快速的交付和部署

    对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

    开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

    相关概念:

    Docker是CS架构,主要有两个概念:

    • Docker daemon: 运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互
    • Docker client: Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker client也可以通过socket或者RESTful api访问远程的Docker daemon

    Docker的三个主要概念:

    • Docker image:镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。
    • Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
    • Docker hub/registry: 共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。

    镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。

    Docker安装

    建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便

    Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

    yum install docker

     安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

    service docker start
    chkconfig docker on

    如采用CentOS 7中支持的新式 systemd 语法,如下:

    systemctl start docker.service
    systemctl enable docker.service

    测试

    docker version

    输入上述命令,返回docker的版本相关信息,证明docker安装成功。

    Hello World

    下面,我们通过最简单的 image 文件”hello world”,感受一下 Docker。

    因为国内连接 Docker 的官方仓库很慢,因此我们在日常使用中会使用Docker 中国加速器。通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。

    Docker 中国官方镜像加速可通过registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。

    修改系统中docker对应的配置文件即可,如下:

    vi  /etc/docker/daemon.json
    #添加后
    {
        "registry-mirrors": ["https://registry.docker-cn.com"],
        "live-restore": true
    }

    运行下面的命令,将 image 文件从仓库抓取到本地。

    docker pull library/hello-world

    上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

    抓取成功以后,就可以在本机看到这个 image 文件了。

    docker images
    #显示结果
    REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
    docker.io/hello-world           latest              f2a91732366c        3 months ago        1.848 kB

    现在,运行这个 image 文件。

    docker run hello-world
    
    #显示结果
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...

    输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。

    常用命令

    除过以上我们使用的Docker命令外,Docker还有一些其它常用的命令

    拉取docker镜像

    docker pull image_name

    查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

    docker images

    删除镜像

    docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30

    查看当前有哪些容器正在运行

    docker ps

    查看所有容器

    docker ps -a

    启动、停止、重启容器命令:

    docker start container_name/container_id
    docker stop container_name/container_id
    docker restart container_name/container_id

    后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:

    docker attach container_name/container_id

    删除容器的命令:

    docker rm container_name/container_id

    删除所有停止的容器:

    docker rm $(docker ps -a -q)

    查看当前系统Docker信息

    docker info

    从Docker hub上下载某个镜像:

    docker pull centos:latest
    docker pull centos:latest

    查找Docker Hub上的nginx镜像

    docker search nginx

    执行docker pull centos会将Centos这个仓库下面的所有镜像下载到本地repository。

  • 相关阅读:
    go语言中通过http访问需要认证的api
    Mysql两个time类型计算时间相减
    gorm中数据库datetime类型的映射和time.Time的格式化
    最详细的六种装饰器写法,学不会你找我!
    深度学习中的四种激活函数
    看完这篇文章,相信我,你已经掌握正则表达式了!
    新手还在问学Python应该看什么书,老手已经进来下载了(附100本pdf电子书下载)
    Python轻松实现一个毕业生信息管理系统!
    Python一键搞定批量合成PDF
    网易云10万+音乐竟然能用Python一键下载!
  • 原文地址:https://www.cnblogs.com/taiguyiba/p/8714502.html
Copyright © 2020-2023  润新知