【ShuQiHere】 🚀
前言
Docker 是一个开源的应用容器引擎,允许开发者将应用程序及其依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 能够极大地简化部署过程,提高开发和运维的效率。
本指南将带你在 Linux 系统上,从零开始学习 Docker,并通过实践一个最基本的 GitHub 项目,帮助你快速入门。
1. 什么是 Docker?🐳
1.1 Docker 的概念
Docker 是一个基于 容器(Container) 技术的开源平台,旨在让应用程序的创建、部署和运行变得更加简单。容器允许开发者将应用程序和环境一起封装,使其能够在任何支持 Docker 的平台上运行。
1.2 Docker 的优势
- 轻量级:相比虚拟机,Docker 容器占用资源更少,启动速度更快。
- 可移植性:一次构建,随处运行。Docker 容器可以在开发、测试和生产环境中保持一致。
- 简化部署:通过容器化,可以将复杂的部署过程简化为拉取和运行容器镜像。
2. 在 Linux 上安装 Docker 🛠️
2.1 更新软件包索引
首先,确保你的软件包索引是最新的。
bash
sudo apt-get update
2.2 安装必要的依赖
bash
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
2.3 添加 Docker 的官方 GPG 密钥
bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2.4 设置稳定版的 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
2.5 安装 Docker Engine
bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2.6 验证 Docker 是否安装成功
运行以下命令,查看 Docker 版本:
bash
docker --version
如果成功安装,你会看到类似于 Docker version 20.10.8, build xxxx
的输出。
3. 运行第一个 Docker 容器 🐋
3.1 运行 Hello World 容器
bash
sudo docker run hello-world
解释 :这个命令会从 Docker Hub 拉取 hello-world
镜像并运行,验证你的 Docker 安装是否成功。
4. 从 GitHub 项目实践 Docker 🧑💻
现在,我们通过一个简单的 GitHub 项目来实践 Docker 的使用。
4.1 选择一个简单的 GitHub 项目
我们选择一个简单的 Node.js 应用,假设仓库地址为:
https://github.com/docker/getting-started
4.2 克隆项目到本地
bash
git clone https://github.com/docker/getting-started.git
4.3 进入项目目录
bash
cd getting-started
4.4 查看项目文件
使用 ls
命令查看项目目录下的文件:
bash
ls
你应该会看到一个 Dockerfile
,这是 Docker 的构建文件。
4.5 查看 Dockerfile 内容
bash
cat Dockerfile
Dockerfile 内容解释:
dockerfile
# 使用官方的 Node.js 12 镜像作为基础镜像
FROM node:12-alpine
# 设置工作目录
WORKDIR /app
# 复制 package.json 和 package-lock.json
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制应用代码
COPY . .
# 暴露应用运行的端口
EXPOSE 3000
# 启动应用
CMD ["npm", "start"]
4.6 构建 Docker 镜像
bash
sudo docker build -t my-node-app .
解释:
docker build
:构建 Docker 镜像的命令。-t my-node-app
:为镜像命名为my-node-app
。.
:Dockerfile 所在的当前目录。
4.7 查看本地镜像
bash
sudo docker images
你会看到 my-node-app
的镜像已经在本地存在。
4.8 运行 Docker 容器
bash
sudo docker run -p 3000:3000 my-node-app
解释:
-p 3000:3000
:将主机的 3000 端口映射到容器的 3000 端口。my-node-app
:要运行的镜像名称。
4.9 访问应用
打开浏览器,访问 http://localhost:3000
,你应该会看到应用的界面。
4.10 在后台运行容器
如果你希望容器在后台运行,可以使用 -d
参数:
bash
sudo docker run -d -p 3000:3000 my-node-app
5. 管理 Docker 容器和镜像 📦
5.1 查看运行中的容器
bash
sudo docker ps
5.2 查看所有容器(包括已停止的)
bash
sudo docker ps -a
5.3 停止容器
bash
sudo docker stop [容器ID或名称]
5.4 删除容器
bash
sudo docker rm [容器ID或名称]
5.5 删除镜像
bash
sudo docker rmi [镜像ID或名称]
6. Docker 常用命令总结 📝
- 构建镜像 :
docker build -t [镜像名] [Dockerfile路径]
- 运行容器 :
docker run [参数] [镜像名]
- 查看镜像 :
docker images
- 查看容器 :
docker ps
或docker ps -a
- 停止容器 :
docker stop [容器ID]
- 删除容器 :
docker rm [容器ID]
- 删除镜像 :
docker rmi [镜像ID]
7. 后续学习建议 🎯
- 深入学习 Dockerfile :了解更多 Dockerfile 指令,如
ENV
、ARG
、ENTRYPOINT
等。 - 学习 Docker Compose:用于定义和运行多容器的 Docker 应用。
- 了解 Docker 网络和数据卷:学习如何在容器之间建立网络,以及如何持久化数据。
8. 资源推荐 📚
- Docker 官方文档 :https://docs.docker.com/
- Docker 入门教程 :https://docs.docker.com/get-started/
- Docker 从入门到实践 :https://yeasy.gitbook.io/docker_practice/
结语
通过以上步骤,你已经在 Linux 系统上成功安装了 Docker,并实践了一个简单的 GitHub 项目。Docker 的强大之处在于它的简洁和高效,希望本指南能够帮助你开启 Docker 的学习之旅!如果你觉得 Docker 好用,不妨多多实践,尝试容器化你的应用程序。🌟