MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Docker 入门教程(docker基础教程)

2025-03-17 18:37 huorong 精选文章 29 ℃ 0 评论

Docker 入门教程

1. 简介

Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个独立的容器中,确保应用在不同环境中(开发、测试、生产)都能一致运行。Docker 使用轻量级的虚拟化技术,比传统的虚拟机更高效,并且能够快速部署和扩展。

Docker 的核心概念:

  • 镜像 (Image):类似于虚拟机的快照,是只读模板,包含了应用程序及其所有依赖。
  • 容器 (Container):镜像的运行实例,可以启动、停止、删除等操作。
  • 仓库 (Registry):存储和分发镜像的地方,最常用的公共仓库是 Docker Hub。

2. 安装 Docker

2.1 Linux 系统安装

Docker 支持多种 Linux 发行版,以下是基于 Ubuntu 的安装步骤:

\\\`bash

更新包索引

sudo apt-get update

安装必要的依赖包

sudo apt-get 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 APT 仓库

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

sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io

验证安装是否成功

sudo systemctl status docker \\\`

2.2 macOS 和 Windows 系统安装

对于 macOS 和 Windows 用户,推荐使用 Docker Desktop 进行安装。你可以从 Docker 官方网站下载并按照提示安装。

3. Docker 基本命令

3.1 查看 Docker 版本

bash docker --version

3.2 启动 Docker 服务

bash sudo systemctl start docker

3.3 拉取镜像

从 Docker Hub 拉取官方的 hello-world 镜像并运行: bash docker pull hello-world docker run hello-world

3.4 列出本地镜像

bash docker images

3.5 列出正在运行的容器

bash docker ps

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

bash docker ps -a

3.7 删除容器

bash docker rm <容器id>

3.8 删除镜像

bash docker rmi <镜像id>

3.9 运行容器

bash docker run -it ubuntu /bin/bash

  • -it:交互模式,分配一个伪终端。
  • ubuntu:镜像名称。
  • /bin/bash:启动 Bash 终端。

3.10 构建镜像

创建一个简单的 Dockerfile 来构建自定义镜像:

\\\`Dockerfile

使用官方的基础镜像

FROM ubuntu:latest

设置工作目录

WORKDIR /app

复制当前目录下的文件到容器中的 /app 目录

COPY . /app

安装必要的软件包

RUN apt-get update && apt-get install -y python3-pip

设置默认命令

CMD \["python3", "app.py"\] \\\`

构建镜像: bash docker build -t my-app .

3.11 推送镜像到 Docker Hub

首先登录 Docker Hub: bash docker login

然后推送镜像: bash docker tag my-app your-dockerhub-username/my-app docker push your-dockerhub-username/my-app

4. Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用程序的服务,简化了复杂应用的管理和部署。

4.1 安装 Docker Compose

对于 Linux 系统,可以通过以下命令安装: bash sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

对于 macOS 和 Windows,Docker Desktop 已经集成了 Docker Compose。

4.2 编写 docker-compose.yml

创建一个简单的 docker-compose.yml 文件:

yaml version: '3' services: web: image: nginx:latest ports: - "8080:80" db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example

4.3 启动服务

bash docker-compose up -d

4.4 停止服务

bash docker-compose down

5. Docker 网络与卷

5.1 网络

Docker 提供了多种网络模式,默认情况下,容器会连接到桥接网络。你也可以创建自定义网络:

bash docker network create my-network

将容器连接到自定义网络: bash docker run -d --name web --network my-network nginx

5.2 卷

卷用于持久化数据,避免容器重启或删除后数据丢失。创建一个带有卷的容器:

bash docker run -d --name db -v my-volume:/var/lib/mysql mysql:5.7

列出所有卷: bash docker volume ls

删除卷: bash docker volume rm my-volume

6. Docker 安全性

6.1 用户命名空间

用户命名空间可以让容器以非 root 用户身份运行,增强安全性。

6.2 限制资源使用

通过设置 CPU、内存等资源限制,防止容器占用过多系统资源:

bash docker run -d --name web --memory="512m" --cpus="0.5" nginx

7. Docker 生态系统

Docker 生态系统非常丰富,除了 Docker 自身提供的工具外,还有许多第三方工具和服务可以帮助你更好地管理容器化应用,例如:

  • Kubernetes:用于自动化部署、扩展和管理容器化应用的平台。
  • Portainer:提供了一个图形化的界面来管理 Docker 环境。
  • Jenkins:持续集成工具,支持 Docker 化的工作流。

8. 总结

Docker 是现代 DevOps 流程中不可或缺的一部分,它极大地简化了应用程序的开发、测试和部署。通过本文的介绍,你应该已经掌握了 Docker 的基本概念和常用命令,并能够开始构建自己的容器化应用。希望这篇教程对你有所帮助!

如果你有任何问题或需要进一步的帮助,请随时留言!

Tags:mac docker 安装

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言