GitHub热门项目Docker:在Ubuntu 22.04环境下的安装与使用

云信安装大师
90
AI 质量分
11 5 月, 2025
2 分钟阅读
0 阅读

GitHub热门项目Docker:在Ubuntu 22.04环境下的安装与使用

引言

Docker作为GitHub上最受欢迎的开源项目之一,已经成为现代软件开发和部署的标准工具。本文将手把手教你如何在Ubuntu 22.04系统上安装和使用Docker,包括从基础安装到运行第一个容器。无论你是开发新手还是DevOps初学者,这篇教程都能帮助你快速上手Docker。

准备工作

在开始之前,请确保:

  1. 一台运行Ubuntu 22.04的计算机或虚拟机
  2. 拥有sudo权限的用户账户
  3. 稳定的网络连接

第一步:卸载旧版本(如有)

如果你之前安装过旧版本的Docker,建议先卸载它们以避免冲突:

代码片段
sudo apt-get remove docker docker-engine docker.io containerd runc

第二步:设置Docker仓库

  1. 更新apt包索引

    代码片段
    sudo apt-get update
    
  2. 安装依赖包
    这些包允许apt通过HTTPS使用仓库:

    代码片段
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
  3. 添加Docker官方GPG密钥
    这个密钥用于验证下载的软件包的真实性:

    代码片段
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
  4. 设置稳定版仓库
    这将配置apt从哪里获取Docker软件包:

    代码片段
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

第三步:安装Docker引擎

  1. 再次更新apt包索引
    让系统识别新添加的Docker仓库:

    代码片段
    sudo apt-get update
    
  2. 安装最新版Docker
    这会安装Docker引擎、containerd和Docker Compose:

    代码片段
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  3. 验证安装
    运行hello-world镜像测试是否安装成功:

    代码片段
    sudo docker run hello-world
    

    如果看到欢迎信息,说明安装成功。

第四步:配置非root用户使用Docker(可选但推荐)

默认情况下,运行docker命令需要sudo权限。为了安全性和便利性,我们可以将当前用户加入docker组:

代码片段
sudo usermod -aG docker $USER

然后注销并重新登录使更改生效。

验证是否生效(不应再需要sudo):

代码片段
docker run hello-world

第五步:基本Docker命令实践

让我们通过实际操作来熟悉基本的Docker命令:

  1. 拉取镜像
    从Docker Hub下载一个Nginx镜像:

    代码片段
    docker pull nginx:latest
    
  2. 运行容器
    以后台模式运行Nginx容器,并将主机的8080端口映射到容器的80端口:

    代码片段
    docker run -d -p 8080:80 --name my-nginx nginx:latest
    
  3. 查看运行的容器

    代码片段
    docker ps
    
  4. 停止容器

    代码片段
    docker stop my-nginx
    
  5. 删除容器(必须先停止):

    代码片段
    docker rm my-nginx
    
  6. 查看本地镜像:
    “`bash
    docker images

  7. 删除镜像:
    首先确保没有容器在使用该镜像:

  8. 进入运行中的容器:
    对于调试很有用:

9.查看容器日志:

10.构建自定义镜像(示例):

Dockerfile示例

创建一个简单的Python应用:

1.创建项目目录和文件:

代码片段
# Dockerfile内容解释:
# FROM指定基础镜像 
# WORKDIR设置工作目录 
# COPY复制文件到镜像中 
# RUN执行命令(构建时)
# CMD指定容器启动时运行的命令(运行时)

2.构建镜像:

代码片段
docker build -t my-python-app .

3.运行自定义镜像:

代码片段
docker run -p 4000:80 my-python-app  

访问http://localhost:4000查看结果

Docker Compose示例(多容器应用)

1.创建docker-compose.yml文件:

代码片段
version: '3'
services:
 web:
 build: .
 ports:
 - "5000:5000"
 redis:
 image: "redis:alpine"

2.启动服务:

代码片段
docker compose up  

3.停止服务:

代码片段
docker compose down  

常见问题解决

1.”Got permission denied”错误:

如果忘记将用户加入docker组,或者未重新登录,会看到此错误。解决方案:

代码片段
sudo usermod -aG docker $USER  
#然后注销重新登录  

2.端口冲突:

如果端口已被占用,会报错。可以更换端口或停止占用程序。

3.磁盘空间不足:

定期清理不需要的镜像和容器:

代码片段
docker system prune  

4.网络问题导致pull失败:

可以尝试更换国内镜像源,编辑/etc/docker/daemon.json:

然后重启docker服务:

Docker最佳实践

1.使用官方镜像作为基础

2.保持镜像最小化

3.合理使用.dockeringore文件

4.一个容器只运行一个进程

5.使用多阶段构建减少最终镜像大小

6.不要将敏感信息存储在镜像中

7.为生产环境指定明确的版本标签

8.定期更新基础镜像

总结

通过本教程,你已经学会了如何在Ubuntu22.04上:

✓正确安装和配置 Docker

✓理解基本的 Docker概念和架构

✓掌握常用的 Docker命令

✓构建自定义 Docker镜像

✓使用 DockerCompose编排多容器应用

✓解决常见的 Docker相关问题

作为后续学习建议,你可以探索:

• Kubernetes与 Docker的结合使用

• CI/CD管道中的 Docker应用

•微服务架构中的容器化实践

•云原生应用的开发部署

原创 高质量