Linux安装Docker(Debian11)

  1. 安装依赖

    • sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
  2. 安装GPG证书

    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    Ubuntu:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  3. 写入软件源信息

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    Ubuntu:sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  4. 安装

    sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg
    sudo apt-get update
    sudo apt-cache madison docker-ce # 查询存储库中可用的版本,可以安装时指定
    sudo apt-get install docker-ce # Docker守护进程(=5:23.0.5-1~debian.11~bullseye)
    sudo apt-get install docker-ce-cli# CLI工具用来远程控制Docker守护进程‎
    
  5. 启动

    1. 启动:sudo systemctl start docker
    2. 检查 Docker 是否正在运行:sudo systemctl status docker
    3. 开机启动:sudo systemctl enable docker && sudo systemctl restart docker && sudo systemctl status docker
    4. 查看安装版本:docker --version
    5. 查看基本信息:docker info
    
  6. 使用镜像加速(阿里云为例)

    • 阿里云容器镜像服务文档
    • 登录阿里云控制台——产品与服务——容器服务——容器镜像服务——镜像工具——镜像加速器 (点击快速地址访问)
    • 配置
      sudo mkdir -p /etc/docker
      sudo tee /etc/docker/daemon.json <<-'EOF'
      {
        "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]  #这个地址是自己阿里云帐号工作台分配的
      }
      EOF
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      
  7. 配置Containerd运行时镜像加速器(阿里云为例)

    Containerd通过在启动时指定一个配置文件夹,使后续所有镜像仓库相关的配置都可以在里面热加载,无需重启Containerd。

    • 在/etc/containerd/config.toml配置文件中插入如下config_path:
      config_path = “/etc/containerd/certs.d”
    • 说明 /etc/containerd/config.toml非默认路径,您可以根据实际使用情况进行调整。
      1. 若已有plugins."io.containerd.grpc.v1.cri".registry,则在下面添加一行,注意要有Indent。若没有,则可以在任意地方写入。
      	[plugins."io.containerd.grpc.v1.cri".registry]
        		config_path = "/etc/containerd/certs.d"
      2. 之后需要检查配置文件中是否有原有mirror相关的配置,如下:
      	[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        		[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          		endpoint = ["https://registry-1.docker.io"]
      	若有原有mirror相关的配置,则需要清理。
      3. 执行systemctl restart containerd重启Containerd。
      4. 若启动失败,执行journalctl -u containerd检查为何失败,通常是配置文件仍有冲突导致,您可以依据报错做相应调整。
      
    • 在步骤一中指定的config_path路径中创建docker.io/hosts.toml文件,在文件中写入如下配置
      server = "https://registry-1.docker.io"
      
      [host."https://xxx.mirror.aliyuncs.com"]
        capabilities = ["pull", "resolve", "push"]
      
  8. 测试 docker

    • docker run hello-world
    • docker image ls #查看镜像
  9. 非root执行docker命令不加sudo

    可以添加docker组,并将非root账户加入到该组中。下面的命令创建docker组并将当前用户加入docker组,执行完成之后重新登陆生效

    sudo groupadd docker
    sudo usermod -aG docker $USER
    
  10. 卸载Docker

    • 卸载软件和依赖
      sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
      
    • 卸载资源
      sudo rm -rf /var/lib/docker
      
      sudo rm -rf /var/lib/containerd
      
  11. Docker空间清理(清理后在使用docker构建时所有的依赖会重新下载,慎用!)

    • 查看:docker system df #可以加-v参数,更详细
    • 清理:docker system prune -a
    • 如果发现df 和 du不一致
      通过 lsof | grep deleted 命令查看那些引用着被删除文件的进程
      将这些进程 kill 掉,再看 df 和 du 就一致了
      
  12. docker常用命令

    • 查看镜像:docker image ls
    • 删除镜像:docker image rm [IMAGE ID] #或者[REPOSITORY:TAG]
    • 导入镜像操作: docker load < xxx.tar
    • 进入镜像:docker run -it [IMAGE ID] #exit退出
    • docker run 运行容器
      docker run -d --rm --name hello_world -v $PWD:/test
      1. -d: 后台运行容器,并返回容器ID;
      2. --rm:退出容器以后,这个容器就被删除了,方便在临时测试使用
      3. --name hello_world: 为容器指定一个名称,不指定名称,docker会默认创建一个名称;
      4. -v $PWD:test : 将容器中的目录/test 挂载到 宿主机 当前 目录下
      
    • 查看运行的容器:docker ps -a
    • 结束运行的容器:docker stop [CONTAINER ID]
    • 删除容器:docker rm [CONTAINER ID]

你可能感兴趣的:(Linux基础,docker,linux,容器)