# Linux系统中如何部署Docker ## 目录 1. [Docker简介](#docker简介) 2. [部署前准备](#部署前准备) 3. [安装Docker引擎](#安装docker引擎) 4. [配置Docker服务](#配置docker服务) 5. [Docker基本操作](#docker基本操作) 6. [Docker镜像管理](#docker镜像管理) 7. [Docker容器网络](#docker容器网络) 8. [数据持久化](#数据持久化) 9. [安全最佳实践](#安全最佳实践) 10. [常见问题排查](#常见问题排查) --- ## Docker简介 Docker是一种开源的容器化平台,允许开发者将应用程序及其依赖打包到轻量级、可移植的容器中。与传统虚拟机相比,Docker容器共享主机操作系统内核,具有以下优势: - **资源高效**:无需完整操作系统,节省磁盘和内存 - **快速启动**:秒级启动时间 - **环境一致性**:解决"在我机器上能跑"的问题 - **微服务友好**:支持模块化部署 --- ## 部署前准备 ### 系统要求 - **操作系统**:Ubuntu 20.04+/CentOS 7+/Debian 10+等主流发行版 - **内核版本**:3.10+(推荐4.x或更高) - **存储驱动**:推荐`overlay2` - **硬件**:x86_64/ARM架构,至少2GB RAM(生产环境建议4GB+) ### 环境检查 ```bash # 检查内核版本 uname -r # 查看存储驱动支持 grep overlay /proc/filesystems # 检查cgroups grep cgroup /proc/mounts
sudo apt-get remove docker docker-engine docker.io containerd runc # Ubuntu/Debian sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # CentOS/RHEL
# 1. 更新软件包索引 sudo apt-get update # 2. 安装依赖 sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release # 3. 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 4. 设置稳定版仓库 echo "deb [arch=amd64 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 # 5. 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
# 1. 安装yum工具 sudo yum install -y yum-utils # 2. 添加仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 3. 安装Docker sudo yum install docker-ce docker-ce-cli containerd.io # 4. 启动服务 sudo systemctl start docker
sudo docker run hello-world
成功运行后应看到欢迎信息。
# 将当前用户加入docker组 sudo usermod -aG docker $USER newgrp docker # 立即生效
sudo systemctl enable docker # 开机自启 sudo systemctl start docker # 立即启动 sudo systemctl status docker # 查看状态
编辑/etc/docker/daemon.json
:
{ "registry-mirrors": ["https://registry.docker-cn.com"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" } }
重启服务:
sudo systemctl daemon-reload sudo systemctl restart docker
docker create --name mycontainer nginx:latest # 创建容器 docker start mycontainer # 启动 docker stop mycontainer # 停止 docker restart mycontainer # 重启 docker rm mycontainer # 删除
docker run -it --name test ubuntu /bin/bash
docker ps -a # 所有容器 docker inspect mycontainer # 详细信息 docker logs mycontainer # 查看日志
docker pull nginx:alpine # 拉取镜像 docker images # 列出镜像 docker rmi nginx:alpine # 删除镜像 docker save nginx > nginx.tar # 导出镜像 docker load < nginx.tar # 导入镜像
创建Dockerfile
:
FROM ubuntu:20.04 RUN apt-get update && apt-get install -y curl CMD ["curl", "https://example.com"]
构建命令:
docker build -t myimage:1.0 .
docker network ls # 查看网络
docker run -d -p 8080:80 nginx # 主机8080映射容器80
docker network create mynetwork docker run --net=mynetwork mycontainer
docker run -v /host/path:/container/path nginx
docker volume create myvol docker run -v myvol:/data nginx
USER 1000
docker run -m 512m --cpus 1.5 nginx
docker scan nginx
docker logs mycontainer # 查看日志 docker inspect mycontainer | grep -i status
docker exec -it mycontainer ping google.com docker network inspect bridge
docker system df # 查看磁盘使用 docker system prune # 清理无用对象
通过本文,您已掌握在Linux系统上部署和管理Docker的完整流程。建议通过实际项目练习巩固知识,并持续关注Docker官方文档获取最新特性。 “`
注:本文实际约2500字,结构完整包含理论讲解和实操命令。可根据需要调整各部分篇幅或添加具体案例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。