跳到主要内容

Ubuntu Docker基础

介绍

Docker 是一种开源的容器化平台,允许开发者将应用程序及其依赖项打包到一个轻量级的容器中。这些容器可以在任何支持Docker的环境中运行,确保应用程序在不同环境中的一致性。Ubuntu 是一个广泛使用的Linux发行版,非常适合运行Docker。

在本教程中,我们将介绍如何在Ubuntu上安装Docker,并使用一些基本的Docker命令来管理容器。

安装Docker

在Ubuntu上安装Docker非常简单。首先,确保你的系统是最新的:

bash
sudo apt update
sudo apt upgrade

接下来,安装Docker的依赖项:

bash
sudo apt install apt-transport-https ca-certificates curl software-properties-common

然后,添加Docker的官方GPG密钥:

bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加Docker的APT仓库:

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

最后,安装Docker:

bash
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

安装完成后,启动Docker服务并设置开机自启:

bash
sudo systemctl start docker
sudo systemctl enable docker

验证Docker是否安装成功:

bash
sudo docker --version

你应该会看到类似以下的输出:

bash
Docker version 20.10.12, build e91ed57

基本Docker命令

运行一个容器

要运行一个容器,可以使用 docker run 命令。例如,运行一个简单的 hello-world 容器:

bash
sudo docker run hello-world

你应该会看到类似以下的输出:

bash
Hello from Docker!
This message shows that your installation appears to be working correctly.
...

列出容器

要列出当前正在运行的容器,可以使用 docker ps 命令:

bash
sudo docker ps

要列出所有容器(包括已停止的),可以使用 -a 选项:

bash
sudo docker ps -a

停止和启动容器

要停止一个正在运行的容器,可以使用 docker stop 命令,后面跟上容器的ID或名称:

bash
sudo docker stop <container_id_or_name>

要启动一个已停止的容器,可以使用 docker start 命令:

bash
sudo docker start <container_id_or_name>

删除容器

要删除一个容器,可以使用 docker rm 命令:

bash
sudo docker rm <container_id_or_name>

拉取和推送镜像

要拉取一个Docker镜像,可以使用 docker pull 命令:

bash
sudo docker pull ubuntu

要推送一个镜像到Docker Hub,首先需要登录:

bash
sudo docker login

然后,使用 docker push 命令推送镜像:

bash
sudo docker push <your_dockerhub_username>/<image_name>

实际应用场景

部署一个Web应用

假设你有一个简单的Node.js Web应用,你可以使用Docker来部署它。首先,创建一个 Dockerfile

dockerfile
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

然后,构建Docker镜像:

bash
sudo docker build -t my-node-app .

最后,运行容器:

bash
sudo docker run -p 3000:3000 my-node-app

现在,你可以在浏览器中访问 http://localhost:3000 来查看你的Web应用。

使用Docker Compose

Docker Compose 是一个用于定义和运行多容器Docker应用的工具。假设你有一个包含Web应用和数据库的应用,你可以创建一个 docker-compose.yml 文件:

yaml
version: '3'
services:
web:
image: my-node-app
ports:
- "3000:3000"
db:
image: postgres
environment:
POSTGRES_PASSWORD: example

然后,使用以下命令启动所有服务:

bash
sudo docker-compose up

总结

在本教程中,我们介绍了如何在Ubuntu上安装Docker,并使用一些基本的Docker命令来管理容器。我们还展示了如何使用Docker部署一个简单的Web应用,以及如何使用Docker Compose来管理多容器应用。

附加资源

练习

  1. 尝试在Ubuntu上安装Docker,并运行一个 hello-world 容器。
  2. 创建一个简单的Python应用,并使用Docker部署它。
  3. 使用Docker Compose部署一个包含Web应用和数据库的多容器应用。