Linux系统Docker安装

安装 Docker

在 Linux 系统上安装 Docker 需要根据具体的发行版选择对应的安装方式。以下以 Ubuntu 为例:

更新软件包索引并安装依赖:

bash 复制代码
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common

添加 Docker 官方 GPG 密钥:

bash 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 Docker 仓库:

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

安装 Docker Engine:

bash 复制代码
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

验证安装:

bash 复制代码
sudo docker run hello-world

管理 Docker 服务

启动 Docker 服务:

bash 复制代码
sudo systemctl start docker

设置 Docker 开机自启:

bash 复制代码
sudo systemctl enable docker

检查 Docker 运行状态:

bash 复制代码
sudo systemctl status docker

常用 Docker 命令

拉取镜像:

bash 复制代码
sudo docker pull ubuntu:latest

列出本地镜像:

bash 复制代码
sudo docker images

运行容器:

bash 复制代码
sudo docker run -it ubuntu /bin/bash

列出运行中的容器:

bash 复制代码
sudo docker ps

列出所有容器(包括停止的):

bash 复制代码
sudo docker ps -a

停止容器:

bash 复制代码
sudo docker stop <container_id>

删除容器:

bash 复制代码
sudo docker rm <container_id>

删除镜像:

bash 复制代码
sudo docker rmi <image_id>

构建自定义镜像

创建 Dockerfile:

dockerfile 复制代码
FROM ubuntu:latest
RUN apt update && apt install -y python3
CMD ["python3", "--version"]

构建镜像:

bash 复制代码
sudo docker build -t my-python-image .

运行自定义镜像:

bash 复制代码
sudo docker run my-python-image

数据卷和端口映射

挂载主机目录到容器:

bash 复制代码
sudo docker run -v /host/path:/container/path ubuntu

映射主机端口到容器端口:

bash 复制代码
sudo docker run -p 8080:80 nginx

容器网络

创建网络:

bash 复制代码
sudo docker network create my-network

连接容器到网络:

bash 复制代码
sudo docker run --network=my-network ubuntu

清理资源

删除所有停止的容器:

bash 复制代码
sudo docker container prune

删除未被使用的镜像:

bash 复制代码
sudo docker image prune -a

Docker Compose 使用

安装 Docker Compose:

bash 复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

创建 docker-compose.yml 文件:

yaml 复制代码
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example

启动服务:

bash 复制代码
sudo docker-compose up -d

停止服务:

bash 复制代码
sudo docker-compose down
相关推荐
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun1 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
不吃香菜kkk、1 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove1 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21
春天花会开1312 天前
Supabase 自部署 Edge Functions 超时从 60s 延长到 360s 完整复盘
运维·云原生
ysu_03142 天前
【2026】K8s GPU调度空占怎么解?Kueue与Volcano Gang配置
云原生·kubernetes·gpu算力·volcano·ai基础设施·kueue·gang scheduling
天天喝旺仔3 天前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
逐流人3 天前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
运维开发王义杰4 天前
跨项目直连数据库:是架构反模式,还是现实的工程妥协?
云原生