-
安装依赖
- sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
-
安装GPG证书
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
写入软件源信息
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
安装
sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg sudo apt-get update sudo apt-cache madison docker-ce # 查询存储库中可用的版本,可以安装时指定 sudo apt-get install docker-ce # Docker守护进程(=5:23.0.5-1~debian.11~bullseye) sudo apt-get install docker-ce-cli# CLI工具用来远程控制Docker守护进程
-
启动
1. 启动:sudo systemctl start docker 2. 检查 Docker 是否正在运行:sudo systemctl status docker 3. 开机启动:sudo systemctl enable docker && sudo systemctl restart docker && sudo systemctl status docker 4. 查看安装版本:docker --version 5. 查看基本信息:docker info
-
使用镜像加速(阿里云为例)
- 阿里云容器镜像服务文档
- 登录阿里云控制台——产品与服务——容器服务——容器镜像服务——镜像工具——镜像加速器 (点击快速地址访问)
- 配置
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' {"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"] #这个地址是自己阿里云帐号工作台分配的 } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
配置Containerd运行时镜像加速器(阿里云为例)
Containerd通过在启动时指定一个配置文件夹,使后续所有镜像仓库相关的配置都可以在里面热加载,无需重启Containerd。
- 在/etc/containerd/config.toml配置文件中插入如下config_path:
config_path = “/etc/containerd/certs.d” - 说明 /etc/containerd/config.toml非默认路径,您可以根据实际使用情况进行调整。
1. 若已有plugins."io.containerd.grpc.v1.cri".registry,则在下面添加一行,注意要有Indent。若没有,则可以在任意地方写入。[plugins."io.containerd.grpc.v1.cri".registry]config_path = "/etc/containerd/certs.d" 2. 之后需要检查配置文件中是否有原有mirror相关的配置,如下:[plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://registry-1.docker.io"]若有原有mirror相关的配置,则需要清理。 3. 执行systemctl restart containerd重启Containerd。 4. 若启动失败,执行journalctl -u containerd检查为何失败,通常是配置文件仍有冲突导致,您可以依据报错做相应调整。
- 在步骤一中指定的config_path路径中创建docker.io/hosts.toml文件,在文件中写入如下配置
server = "https://registry-1.docker.io"[host."https://xxx.mirror.aliyuncs.com"]capabilities = ["pull", "resolve", "push"]
- 在/etc/containerd/config.toml配置文件中插入如下config_path:
-
测试 docker
- docker run hello-world
- docker image ls #查看镜像
-
非root执行docker命令不加sudo
可以添加docker组,并将非root账户加入到该组中。下面的命令创建docker组并将当前用户加入docker组,执行完成之后重新登陆生效
sudo groupadd docker sudo usermod -aG docker $USER
-
卸载Docker
- 卸载软件和依赖
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 卸载资源
sudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerd
- 卸载软件和依赖
-
Docker空间清理(清理后在使用docker构建时所有的依赖会重新下载,慎用!)
- 查看:docker system df #可以加-v参数,更详细
- 清理:docker system prune -a
- 如果发现df 和 du不一致
通过 lsof | grep deleted 命令查看那些引用着被删除文件的进程 将这些进程 kill 掉,再看 df 和 du 就一致了
-
docker常用命令
- 查看镜像:docker image ls
- 删除镜像:docker image rm [IMAGE ID] #或者[REPOSITORY:TAG]
- 导入镜像操作: docker load < xxx.tar
- 进入镜像:docker run -it [IMAGE ID] #exit退出
- docker run 运行容器
docker run -d --rm --name hello_world -v $PWD:/test 1. -d: 后台运行容器,并返回容器ID; 2. --rm:退出容器以后,这个容器就被删除了,方便在临时测试使用 3. --name hello_world: 为容器指定一个名称,不指定名称,docker会默认创建一个名称; 4. -v $PWD:test : 将容器中的目录/test 挂载到 宿主机 当前 目录下
- 查看运行的容器:docker ps -a
- 结束运行的容器:docker stop [CONTAINER ID]
- 删除容器:docker rm [CONTAINER ID]