前言:

Docker 是一个开源的平台即服务(PaaS)工具,用于容器化应用程序的开发、部署和管理。它利用操作系统级别的虚拟化技术(容器化)来提供轻量级、可移植的环境,使开发者能够将应用程序与其依赖的运行时环境打包成一个容器。

主要特点和优势:

  1. 轻量性和高效性:Docker 容器与宿主机共享操作系统内核,因此比传统虚拟机更加轻量,启动更快,并且占用的资源更少。
  2. 跨平台性:Docker 容器可以在开发、测试和生产环境中无缝移植,确保应用程序在不同环境下的一致性。
  3. 标准化:Docker 容器提供了标准的格式(Docker 镜像)和工具,使得应用程序的交付和部署更加可靠和可重复。
  4. 隔离性和安全性:Docker 使用了多层的安全措施,确保容器之间的隔离,防止恶意代码的扩散,同时提供了权限管理和加密等安全功能。
  5. 易用性:通过 Docker 的命令行接口(CLI)或者图形化界面,开发者可以方便地构建、启动、停止和管理容器,简化了开发和运维工作。

核心概念:

  • 镜像(Image):Docker 镜像是一个只读模板,包含了运行容器所需的文件系统内容和配置信息。
  • 容器(Container):Docker 容器是镜像的一个运行实例,可以被启动、停止、删除,并且可以与宿主机和其他容器进行通信。
  • 仓库(Repository):Docker 仓库是用来集中存放镜像的地方,可以是公开的或者私有的,其中 Docker Hub 是最常用的公共仓库。

应用场景:

  • 开发流程优化:开发人员可以在本地使用 Docker 镜像进行开发,确保与生产环境的一致性。
  • 持续集成和持续部署(CI/CD):通过 Docker 可以快速部署和更新应用程序,提高交付效率。
  • 微服务架构:Docker 的轻量级和易部署特性使其成为构建和管理微服务架构的理想选择。

docker 安装

由于目前 docker hub 在国内被墙,我们可以使用清华源镜像安装 docker,原文地址https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

移除旧版本 Docker:

1
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

安装必要的依赖:

1
2
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

信任 Docker 的 GPG 公钥并添加仓库:

1
2
3
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

注意:如果是 ubuntu 系统的话,要把代码中的debian改为ubuntu,以下同

从清华源下载镜像:

1
2
3
4
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新源并安装 docker

1
2
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置国内镜像源

创建 docker 镜像配置文件夹

1
sudo mkdir -p /etc/docker

写入镜像配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://docker.io",
"https://registry-docker-hub-latest-9vqc.onrender.com",
"https://docker.fxxk.dedyn.io",
"https://docker.chenby.cn",
"https://dockerproxy.com",
"https://hub.uuuadc.top",
"https://docker.jsdelivr.fyi",
"https://docker.registry.cyou",
"https://dockerhub.anzu.vip",
"https://docker.luyao.dynv6.net",
"https://freeno.xyz"
]
}

输入 EOF 结束

重启 docker 服务:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

测试是否安装成功(显示 “Hello from Docker!” 即为成功安装):

1
docker run hello-world

注意:直接运行 docker 可能会显示错误,原因是 Docker 无管理员权限运行会失败!可以在代码前加sudo或添加用户到 docker 组:

1
2
3
4
sudo gpasswd -a $USER docker
newgrp docker
sudo service docker restart
sudo chmod a+rw /var/run/docker.sock

docker 的使用

  • 下载 docker 镜像:docker pull
  • 启动 docker 容器:docker run
  • 停止 docker 容器:docker stop
  • 查看正在进行的容器:docker ps
  • 查看所有容器:docker ps -a
  • 进入容器:docker exec -it container_name /bin/bash
  • 删除容器:docker rm -f
  • 删除镜像:docker rmi

docker 的卸载

如果不想用 docker 了,那么我们就按以下步骤对 docker 进行完全卸载:

停止和删除所有容器

1
2
sudo docker stop $(docker ps -aq)
sudo docker rm $(docker ps -aq)

删除所有镜像

1
sudo docker rmi $(docker images -q)

卸载 docker 引擎

1
sudo apt-get remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

删除 docker 的数据目录

1
sudo rm -rf /var/lib/docker

这样,你就完全删除 docker 了。

,