一、Docker 简介
Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包在一个轻量级、可移植的容器中,实现快速部署和运行。
二、系统要求
- 操作系统:Ubuntu 20.04 或更高版本(推荐使用 LTS 版本)
- 用户权限:具有 sudo 权限
- 网络:能够访问互联网(用于下载 Docker 和镜像)
三、安装 Docker Engine
方法一:使用官方安装脚本(推荐)
- # 更新系统软件包
- sudo apt update
- # 安装依赖包
- sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
- # 添加 Docker 官方 GPG 密钥
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- # 添加 Docker 官方仓库
- 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
- # 更新软件包索引
- sudo apt update
- # 安装 Docker 引擎
- sudo apt install -y docker-ce docker-ce-cli containerd.io
- # 验证是否安装成功
- sudo docker --version
复制代码 四、验证 Docker 是否正常运行
- # 运行测试容器
- sudo docker run hello-world
复制代码如果输出类似下面的内容,说明 Docker 安装成功: - Hello from Docker!
- This message shows that your installation appears to be working correctly.
复制代码 五、配置 Docker 用户权限(避免每次使用 sudo)
默认情况下,只有 root 用户或 组用户才能运行 Docker 命令。 - # 创建 docker 用户组(如果尚未存在)
- sudo groupadd docker
- # 将当前用户添加到 docker 组
- sudo usermod -aG docker $USER
- # 重新加载用户组权限
- newgrp docker
- # 验证是否可以不使用 sudo 运行 Docker
- docker run hello-world
复制代码- <strong>注意</strong>:退出终端后重新登录,权限才会生效。
复制代码 六、Docker 常用命令
1. 查看运行中的容器
2. 查看所有容器(包括已停止的)
3. 查看本地镜像
4. 拉取镜像
5. 运行容器
- docker run -d -p 8080:80 --name mynginx nginx
复制代码
- :后台运行
- :将宿主机的 8080 端口映射到容器的 80 端口
- :为容器指定名称
- :使用的镜像名
6. 停止容器
7. 启动已存在的容器
8. 删除容器
- <strong>注意</strong>:删除前请先停止容器。
复制代码 9. 删除镜像
七、构建自定义镜像(使用 Dockerfile)
示例:构建一个简单的 Python Web 应用
1. 创建项目目录结构
- mkdir myapp
- cd myapp
- touch app.py Dockerfile
复制代码 2. 编写 app.py
- from flask import Flask
- app = Flask(__name__)
- @app.route('/')
- def hello():
- return "Hello from Docker!"
- if __name__ == "__main__":
- app.run(host='0.0.0.0', port=5000)
复制代码 3. 编写 Dockerfile
- FROM python:3.10-slim
- WORKDIR /app
- COPY app.py .
- EXPOSE 5000
- CMD ["python", "app.py"]
复制代码 4. 构建镜像
5. 运行容器
- docker run -d -p 5000:5000 --name myapp-container myapp
复制代码 6. 浏览器访问
八、数据卷挂载(Volume)
如果你希望容器内的数据持久化保存,可以使用 Volume。 - docker run -d -p 5000:5000 \
- -v $(pwd)/data:/app/data \
- --name myapp-container myapp
复制代码
九、网络配置
Docker 会自动为容器分配 IP,也可以自定义网络: - docker network create mynetwork
- docker run --network mynetwork --name app1 -d myapp
- docker run --network mynetwork --name app2 -d anotherapp
复制代码 十、Docker Compose(多容器管理)
1. 安装 Docker Compose
- # 下载最新版本
- sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- # 赋予执行权限
- sudo chmod +x /usr/local/bin/docker-compose
- # 验证安装
- docker-compose --version
复制代码 2. 示例:使用 docker-compose.yml 管理多服务
- # docker-compose.yml
- version: '3'
- services:
- web:
- build: .
- ports:
- - "5000:5000"
- redis:
- image: "redis:alpine"
复制代码- # 启动服务
- docker-compose up -d
- # 停止服务
- docker-compose down
复制代码 十一、清理 Docker 资源
1. 删除所有停止的容器
2. 删除所有无用的镜像
3. 删除所有未使用的卷
4. 删除所有未使用的网络
十二、常见问题与解决方法
问题解决方法权限问题(Permission denied)确保用户已加入 docker 组,使用 newgrp docker 刷新权限容器无法访问?检查端口映射、防火墙设置构建失败?检查 Dockerfile 语法,依赖是否完整磁盘空间不足?使用 docker system prune 清理无用资源以上就是Docker在Ubuntu系统中的详细操作指南的详细内容,更多关于Docker在Ubuntu中的操作的资料请关注晓枫资讯其它相关文章!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |