Docker 的简单介绍
中文官网:Docker中文网 官网
英文官网:Docker: Accelerated Container Application Development
Docker 是一个开源的应用容器引擎,它允许开发者打包应用及其依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 操作系统上,也可以实现虚拟化。通过 Docker,开发人员可以构建、部署和运行应用程序,而无需关心底层基础设施的差异。
Docker 主要基于以下核心概念:
-
容器(Containers):容器是 Docker 的基本运行单元,它将应用程序及其所有依赖(如库、环境变量、配置文件等)打包在一起,形成一个可移植的、轻量级的、自包含的执行环境。每个容器都在其自己的进程中运行,并与其他容器共享主机操作系统内核,但各自拥有独立的文件系统、网络配置、资源限制等。
-
镜像(Images):镜像是创建容器的蓝图,是一个只读模板。它包含了运行应用程序所需的所有内容,包括代码、运行时、库、环境变量和配置文件等。镜像通过分层结构构建,每一层代表一次修改或添加,这种设计使得镜像复用和共享非常高效。用户可以从基础镜像开始,通过添加自定义层来构建新的镜像。
-
注册表(Registry):Docker 注册表是存放和分发 Docker 镜像的地方,最知名的公共注册表是 Docker Hub,用户可以在上面查找、下载或上传镜像。企业通常会使用私有注册表(如 Harbor、Nexus)来管理内部的镜像。
-
Dockerfile:Dockerfile 是一个文本文件,用于定义如何构建一个 Docker 镜像。它包含了一系列指令,如指定基础镜像、复制文件、运行命令等,Docker 会按照这些指令逐行执行以生成最终的镜像。
Docker 下载与安装
Docker 可以在多种主流操作系统上安装,包括 Linux、macOS 和 Windows。
下载地址:Get Started | Docker
以下是在 Linux 环境下安装 Docker 的大致步骤:
Linux 环境
安装参考:Install Docker Desktop on Linux | Docker Docs
前提条件:
- 确保系统内核版本高于 3.10,因为 Docker 需要某些内核特性支持。可以通过
uname -r
命令检查内核版本。
安装步骤(以 CentOS/RHEL 为例):
-
卸载旧版本(如果存在):
1sudo yum remove docker \ 2 docker-client \ 3 docker-client-latest \ 4 docker-common \ 5 docker-latest \ 6 docker-latest-logrotate \ 7 docker-logrotate \ 8 docker-engine
-
安装必要工具:
1sudo yum install -y yum-utils
-
设置 Docker 软件源: 使用官方或第三方(如阿里云)的镜像仓库以提高下载速度。这里以阿里云为例:
1sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装 Docker Engine:
1sudo yum install -y docker-ce docker-ce-cli containerd.io
-
启动 Docker 服务:
1sudo systemctl start docker
-
设置 Docker 开机自启动:
1sudo systemctl enable docker
-
验证安装:
1docker --version
macOS 和 Windows
对于 macOS 和 Windows 用户,可以直接访问 Docker 官方网站下载并安装适用于各自操作系统的 Docker Desktop 应用程序。安装程序会自动处理依赖项和配置。
macOS下载参考:Install Docker Desktop on Mac | Docker Docs
Windows下载参考:Install Docker Desktop on Windows | Docker Docs
Docker 基本使用
基本命令
-
镜像操作:
-
容器操作:
- 运行容器:
docker run [options] <image-name[:tag]> [command]
- 列出容器:
- 启动容器:
docker start <container-id|container-name>
- 停止容器:
docker stop <container-id|container-name>
- 重启容器:
docker restart <container-id|container-name>
- 进入容器:
docker exec -it <container-id|container-name> bash
- 删除容器:
docker rm <container-id|container-name>
- 运行容器:
-
其他常用命令:
示例
-
运行一个交互式 Ubuntu 容器:
1docker run -it ubuntu:latest bash
-
运行一个后台模式的 Nginx 容器,并映射端口:
1docker run -d --name my-nginx -p 8080:80 nginx:latest
-
从容器中拷贝文件到主机:
1docker cp <container-id>:<src-path> <host-path>
常见问题及解决方法
以上就是对 Docker 的简单介绍,在实际使用中遇到问题时,应结合错误提示和日志信息进行细致排查并在网上搜索问题解决方案,你遇到的问题也是别人踩过的坑。