• 2.docker基础用法


    一、前言

    OCI(Open Container Initiative):由Linux基金会主导于2015年6月创立,OCI定义了容器运行时的标准。

    OCI有两部分组成:

    the Runtime Specification:运行时标准

    the image Specification:镜像格式标准

    OCF(Open Container Format):runC是Docker按照开放容器格式标准(OCF)制定的一种具体实现,runC是从Docker的libcontainer中迁移而来的,实现了容器启停,资源隔离等功能,Docker默认提供了docker-runc实现。

    docker-ee:企业版

    docker-ce:社区版

    二、Docker架构

    C-S架构,Docker daemon默认只监听在Unix套接字之上,可修改配置文件来监听tcp端口。

    docker client – docker daemon – docker registries

    客户端(docker run |create等)通过httpd或https和一个运行了docker host守护进程的主机(docker daemon)通信。docker daemon接收到了客户端的创建或启动容器的命令后,将在本地查找镜像创建或启动容器(在一个docker host上可以启动多个容器)。如果本地没有镜像,docker host会连接到配置的远程Registry(默认Registry是Docker Hub,默认使用https协助)上下载镜像到本地的一个专用的文件系统(在docker1.18使用的是overlay2,之前使用的是aufs/btrfs/lxc)。而后开始根据客户端命令创建或运行容器。

    Registry:提供镜像存储的仓库功能;提供用户获取镜像时的认证功能;提供当前服务器上所有可用镜像的所有索引。一个docker镜像仓库(repository)只放一个应用程序,仓库名就是应用程序名,用仓库名和标签来标识唯一一个镜像,默认标签名为latest。一个Registry拥有很多个仓库(Repository)。

    镜像是静态的,而容器是具有生命周期的。

    镜像是不可修改的,只能重构。

    三、基础使用

    1、安装和使用

    依赖的基础环境:64bit CPU,Linux Kernel 3.10+,Linux Kernel namespace and Cgroups

    CentOS7的Extras Repository有docker,但不建议使用,因为版本太老了。

    docker-ce默认使用的配置文件:/etc/docker/daemon.json

    docker镜像加速:docker cn、阿里云加速器、中国科技大学加速器,写入配置文件即可。

    更换镜像和安装:

    [root@oracle ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
    [root@oracle ~]# sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    [root@oracle ~]# yum install docker-ce –y

    配置镜像加速器:

    [root@oracle ~]# mkdir /etc/docker
    [root@oracle ~]# tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
    }
    EOF
    [root@oracle ~]# systemctl daemon-reload
    [root@oracle ~]# systemctl restart docker

    验证:

    [root@oracle ~]# docker version
    [root@oracle ~]# docker info
    [root@oracle ~]# systemctl status docker

    2、常规操作

    [root@node1 ~]# docker --help
    Management Commands:
      builder     Manage builds
      config      Manage Docker configs
      container   Manage containers
      context     Manage contexts
      engine      Manage the docker engine
      image       Manage images
      network     Manage networks
      node        Manage Swarm nodes
      plugin      Manage plugins
      secret      Manage Docker secrets
      service     Manage services
      stack       Manage Docker stacks
      swarm       Manage Swarm
      system      Manage Docker
      trust       Manage trust on Docker images
      volume      Manage volumes
    等等

    (1)镜像相关

    [root@oracle ~]# docker search nginx
    [root@oracle ~]# docker image pull nginx:1.14-alpine
    [root@oracle ~]# docker image rm busybox
    [root@oracle ~]# docker image ls --no-trunc
    [root@oracle ~]# docker image ls
    [root@oracle ~]# docker image --help

    (2)容器相关

    [root@oracle ~]# docker container –help
    [root@oracle ~]# docker run --name busybox -it busybox:latest
    [root@oracle ~]# docker run --name nginx -d nginx:1.14-alpine
    [root@oracle ~]# docker ps -a
    [root@oracle ~]# docker container ls -a
    
    [root@oracle ~]# docker container inspect busybox
    [root@oracle ~]# docker container start 5ac7a0330407
    [root@oracle ~]# docker container attach busybox  #在终端里detach:先按ctrl+p;再按,ctrl+q
    [root@oracle ~]# docker container logs nginx
    [root@oracle ~]# docker run --name redis -d redis:4
    [root@oracle ~]# docker container exec -it redis /bin/sh
    [root@oracle ~]# docker container exec -it redis redis-cli

    (3)网络相关

    [root@oracle ~]# docker network --help
    [root@oracle ~]# docker network ls

    3、docker容器的各状态转换与常用命令

  • 相关阅读:
    如何正确设置数据库连接池的大小
    spring生命周期
    Spring高级进阶:BeanFactoryPostProcessor
    Spring Bean的生命周期(非常详细)
    表达式求值相关算法
    golang 命令行参数解析 hflag
    golang 标准命令行解析库 flag
    docker consul 环境搭建
    docker etcd 环境搭建
    mysql 事务
  • 原文地址:https://www.cnblogs.com/cmxu/p/11768075.html
Copyright © 2020-2023  润新知