zoukankan      html  css  js  c++  java
  • Docker的安装和使用

    Docker架构

    Docker安装

    1. 去官网下载repo
    2. 更改为国内镜像baseurl=https://download.docker.com/linux/
    3. 有可能需要安装依赖包 yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.66-1.el7.noarch.rpm
    4.  yum install docker-ce
    

    Docker配置

    1. /etc/docker/daemon.json
        {
            "registry-mirrors": ["https://registry.docker-cn.com"]
        }
        Docker镜像加速
    2. 启动
    # systemctl start docker
    3. 查看 
    # docker help
    # docker info
    4. Docker常用
    # docker image --help
    # docker search nginx  (https://hub.docker.com/)
        nginx 顶级仓库
        jwilder/nginx-proxy 私有仓库
    # docker image pull nginx:1.14-alpine (下载alpine image, alpine是一个体积特别小的Nginx版本,没有任何调试工具,在实际工作中,根据自已的需要生成image)
    # docker pull quay.io/coreos/flannel:v0.10.0-amd64 (到quay.io网站下载镜像,这个网站是常用的第三方镜像)
    # docker image pull busybox:latest
    # docker image ls (显示下载的image)
    # docker image ls --no-trunc (显示详细信息)
    # docker container --help
    # docker container ls (显示容器)
    # docker container ps (显示容器)
    # docker container run --help
    # docker network list (网络查询)
        docker0: 默认是NAT的网桥
    # docker run --name b1 -it busybox:latest (以b1的名字运行image busybox,并且是交互式界面)
        / # ls (进入到busybox容器的shell)
        mkdir /data/html -p
        vim /data/html/index.html (在容器里生成主页)
        httpd -f -h /data/html (启动b1容器里和httpd)
    # docker inspect b1 (在host上查看b1容器的IP)
    # curl 172.17.0.2 (访问b1容器的网页)
        在容器里exit,退出容器
    # docker ps -a (显示所有容器,运行的和停止的)
    # docker container start -i -a b1 (启动容器)
    #  docker kill b1 (强制停止容器)
    # docker rm b1 (永久删除容器b1)
    # docker run --name web1 -d nginx:1.14-alpine (启动nginx容器,如果本地没有下载nginx image,只要repo指定为hub.docker.com, 会自动下载,在容器中的进程不能运行在后台,因为是唯一进程,是支撑一个容器的骨架)
    # docker run --name kdvsor1 -d redis:4-alpine (运行redis容器)
    # docker exec -it kdvsor1 /bin/sh 
        # redis-cli
    # docker logs web1 (在host中查看web1容器的日志)
    

    Docker event state

    Docker image

    Docker镜像含有启动容器所需要的文件系统及其内容,因此,其主要作用创建并启动docker容器。
    

    Docker分层机制

    1. bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源。
    2. rootfs:位于bootfs之上,表现为docker容器的根文件系统。rootfs由内核挂载为只读模式,而后通过联合挂载技术额外挂载一个可写层;
                    位于下层的镜像称为父镜像,最底层的称为基础镜像
                    最上层为可读写层,基下层均为只读层
    

    Docker Registry

    启动容器时,Docker Daemon会试图从本地获取相关的镜像,本地镜像不存在时,其将从Registry中下载该镜像并保存到本地
    

    分类

    Registry用于保存docker镜像,包括镜像的层次结构和元数据:
    1. Sponsor Registry:第三方的registry,供客户和Docker社区使用
    2. Mirror Registry:第三方的registry,只让客户使用
    3. Vendor Registry:由发布Docker镜像的供应商提供的registry
    4. Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry
    注意:每个仓库可以包含多个Tag,但是每一个Tag只能属于一个仓库
    

    Docker生产流程

    Docker Registry中的镜像通常由研发人员制作,而后推送至公共或私有Registry上保存,供其他人员使用,然后部署到生产环境
    


    1. Dockerfile
    2. 基于容器制作
    3. Docker Hub automated builds

    基于容器制作镜像的实例

    #  docker run --name b1 -it busybox
        # / # mkdir -p /data/html
        # / # vi /data/html//index.html
    # docker commit -p b1 (制作image,此镜像还是以bysybox的sh启动)
    # docker tag 542b72efce7e linuxdevops/httpd:v1.0-1 (给镜像标签)
    # docker tag linuxdevops/httpd:v1.0-1 linuxdevops/httpd:latest (加另一个标签)
    # docker run --name t1  -it linuxdevops/httpd:v1.0-1 (启动做的镜像)
        # / # ls /data/html/index.html 
    #  docker commit -a "evanliang" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p b1 linuxdevops/httpd:v1.0-2
    #  docker run --name t2  -it linuxdevops/httpd:v1.0-2
    # curl 172.17.0.4 (新做的linuxdevops/httpd:v1.0-2能直接启动httpd)
    4. 在dockerhub上创建账户
        # docker tag f43e5c3f987c liangjindong/httpd (tag名字一定要和dockerhub上创建的REPOSITORY名字一致)
        # docker login -u liangjindong (登录dockerhub)
            Password:
            WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
            Configure a credential helper to remove this warning. See
            https://docs.docker.com/engine/reference/commandline/login/#credentials-store
            Login Succeeded
        # docker push liangjindong/httpd (如果不带tag,所有image孝会上传到dockerhub)
        # 在dockerhub上,可以看到
    


    # 同时,可以用国内阿里云的镜像服务dev.aliyun.com
    # 配置镜像加速:
    针对Docker客户端版本大于 1.10.0 的用户
    您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://sah48iqf.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    同时,可以在阿里云上创建镜像仓库,上传:
    # sudo docker tag 0dfafbbae68a registry.cn-beijing.aliyuncs.com/liangjindong/httpd:latest (用阿里云指定的tag)
    # sudo docker login --username=liangjindong registry.cn-beijing.aliyuncs.com (登录)
    # sudo docker push registry.cn-beijing.aliyuncs.com/liangjindong/httpd (上传镜像)
    在阿里云上检查,成功

    5. docker镜像打包分发
    # docker save -o myimages.gz liangjindong/httpd:latest liangjindong/httpd:v1.0
    # docker load -i myimages.gz 把myimages.gz copy到另外一台docker服务器
    镜像打包分发需要提前把image本地准备好,否则运行docker run时还会去dockerhub默认的Registry下载。

    Docker Hub

    集中存储各种Docker镜像
    Github他Docker hub来实现镜像的Automated Builds
    

  • 相关阅读:
    Brain network involved in autonomic functions 与自主功能相关的大脑网络
    Brief summary of classical components of ERP 事件相关成分(ERP)经典成分小结
    ICA & Percentage Variance Account For (PVAF)
    数据处理中白化Whitening的作用图解分析
    Loadings vs eigenvectors in PCA 主成分分析(PCA)中的负荷和特征向量
    主成分分析(PCA)和独立成分分析(ICA)相关资料
    Sketch of heart and QRS complex 心脏及QRS波群简图
    Brain Network visulation in EEG 脑电网络可视化
    Phase Locking Value (PLV) 神经信号的锁相值
    ubuntu16.04下的一些基本操作笔记
  • 原文地址:https://www.cnblogs.com/liangjindong/p/9398556.html
Copyright © 2011-2022 走看看