Docker

Docker

简介

  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。类似windows里面的ghost操作系统,安装好后什么都有了;

Docker核心概念

概念 说明
docker镜像(Images) Docker 镜像是用于创建 Docker 容器的模板
docker容器(Container) 容器是独立运行的一个或一组应用
docker客户端(Client) 客户端通过命令行或者其他工具使用Docker
docker主机(Host) 一个物理或者虚拟的机器用于执行Docker守护进程和容器
docker仓库(Registry) Dockers仓库用来保存镜像,可以理解为代码控制中的代码仓库

Docker仓库地址

  • [地址]https://hub.docker.com/

Centos安装Docker

  • 查看centos版本

    Docker要求CentOs系统的内核版本高于3.10

    uname -r
    
  • 升级软件包及内核;

    yum update
    
  • 卸载旧版本的Docker

    Docker的旧版本叫做docker或者docker-engine。现在的Docker版本是Docker CE(社区版)和Docker EE(企业版)。一般情况下,咱们使用Docker CE(社区版)就可以了。如果你的系统安装了旧版本,卸载它们以及与它们相关的依赖

    yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  • 安装Docker

    如果你是在主机上第一次安装Docker CE,需要设置Docker的仓库。以后就可以从这个仓库安装和更新Docker了。

    • 设置仓库

      安装所需的包,yum-utils提供yum-config-manager工具,device-mapper-persistent-datalvm2devicemapper存储驱动所需要的

      yum install -y yum-utils \
          device-mapper-persistent-data \
          lvm2
      

      设置稳定仓库

      yum-config-manager \
          --add-repo \
          https://download.docker.com/linux/centos/docker-ce.repo
      

      设置国内镜像-阿里

      yum-config-manager \
         --add-repo \
         http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      

    • 安装docker

      yum -y install docker-ce
      
    • 错误

      错误:
       问题: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
        - cannot install the best candidate for the job
        - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
        - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
        - package containerd.io-1.2.2-3.el7.x86_64 is excluded
        - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
        - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
        - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
      (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
      
      • 问题分析

        containerd.io版本低导致

      • 解决方法

        安装高版本的containerd.io

        下载:

        wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
        

        安装:

        yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
        

        重新安装docker

        yum -y install docker-ce
        
  • 启动docker

    systemctl start docker
    
  • 将dockers服务设为开机启动

    systemctl enable docker
    
  • 停止docker服务

    systemctl stop docker
    

卸载Docker

  • 卸载Docker包

    yum remove docker-ce
    
  • 镜像、容器、自定义配置文件等并不会随着Docker的卸载自动删除,执行如下命令

    rm -rf /var/lib/docker
    

docker常用操作命令

  • [API]https://docs.docker.com/engine/reference/commandline/docker/

镜像操作

操作 命令 解释
检索 docker search 关键字
eg: docker search redis
查找docker仓库中相应镜像
拉取 docker pull 镜像名:tag :tag可选的,表示标签,多为软件的版本,默认是lasted(最新版)
列表 docker images 查看所有本地镜像
删除 docker rmi image-id 删除指定的本地镜像

容器操作

操作 命令 解释
运行 docker run --name container-name -d image-name -p port1:port2 容器运行
--name:自定义容器名称
-d:后台运行
-p:指定主机与容器端口映射
port1:主机端口
port2:镜像端口
列表 docker ps
docker ps -a
查看运行中的容器
-a:查看所有容器
停止 docker stop container-name/container-id 停止运行的容器
启动 docker start container-name/container-id 启动容器
删除 docker rm container-id 删除指定容器(容器必须在停止状态)
日志 docker logs container-name/container-id 查看指定容器执行日志

你可能感兴趣的:(Docker)