简介

Docker是一个开源的应用容器引擎,它基于Google公司推出的Golang语言开发而来,基于Linux内核的Cgroups、NameSpace,以及UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。

Docker被广泛使用,它是一种操作系统级别的虚拟化技术,以一种特殊进程的方式运行于宿主机上。Docker依赖于Linux内核特性:namespace(名字空间进行资源的隔离)和cgroups(限制、记录任务组所使用的物理资源)。

Docker的设计目标包括提供一个简单的应用程序打包工具,使得应用程序和其相关依赖的包可以被打包进去。同时,开发人员和运维人员的职责逻辑分离,开发人员只需要关心如何打包容器,而运维人员只需要关心怎么去管理这些容器,不需要关心里面具体的配置。而且,通过Docker,多环境可以保持一致性,无论测试环境还是正式环境,只需要部署docker镜像。

容器和虚拟机不同,容器没有自己的内核,它的应用程序直接运行在宿主机的内核上。Docker只是划分出一块块独立的空间,这些空间里运行的环境互不影响。例如:构建一个centos的镜像,但是可以安装nginx,创建属于自己镜像。要构建自己的镜像,需要使用dockerfile来构建自己的镜像。

卸载旧版本

在安装Docker Engine之前,要卸载旧版本Docker,避免产生冲突导致安装失败。

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

设置镜像源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
bash

安装

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
bash

Docker常用命令

# 查看Docker版本
docker -v

# 启动Docker
systemctl start docker

# 停止Docker服务
systemctl stop docker

# 重启Docker
systemctl restart docker

# 查看Docker运行状态
systemctl status docker

# 设置开机启动
systemctl enable docker
bash

卸载Docker

  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 包
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
bash
  1. 删除相关目录和文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
bash