Docker安装与镜像下载和删除(优雅)


环境:Ubuntu 22.04.3 LTS


Docker安装

首先安装一些工具:

1
sudo apt-get install ca-certificates curl gnupg lsb-release

接着安装官方的GPG key:

1
2
3
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

最后将Docker的库添加到apt资源列表中:

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

接着我们更新一次apt:

1
sudo apt update

最后安装Docker CE版本:

1
sudo apt install docker-ce

最后我们将当前用户添加到docker用户组中:

1
sudo usermod -aG docker <用户名>

配置好后,我们先退出SSH终端,然后重新连接就可以生效了。

镜像相关操作

下载镜像:

1
docker pull repository:tag

实际上一个镜像的名称是由两部分组成的,一个是repository,还有一个是tag,一般情况下约定repository就是镜像名称,tag作为版本,默认为latest,表示最新版本。

镜像下载之后会存放在本地,要启动这个镜像的容器,实际上就像我们之前那样,输入run命令就可以了(以hello-world镜像为例):

1
docker run hello-world

启动之后,会使用当前镜像自动创建一个容器,我们可以输入ps命令来查看当前容器的容器列表:

1
docker ps -a

注意后面要加一个-a表示查看所有容器(其他选项可以使用-h查看),如果不加的话,只会显示当前正在运行的容器。

可以看到容器列表中有我们刚刚创建的hello-world(注意同一个镜像可以创建多个容器),每个容器都有一个随机生成的容器ID写在最前面,后面是容器的创建时间以及当前的运行状态,最后一列是容器的名称,在创建容器时,名称可以由我们指定也可以自动生成,这里就是自动生成的。

当一个镜像有多个容器时,我们可以手动指定名称启动,在使用run命令时,添加—name参数即可:

1
docker run --name=名称 hello-world

我们可以手动开启处于停止状态的容器:

1
docker start 容器名称/容器ID

容器名称可以使用Tab键自动补全,ID可以只输入前三位(一般不会重复,除非容器非常多,这时就得保证输入的ID的前n位可以唯一标识这个ID)

如果想要停止容器直接输入stop命令就可以了:

1
docker stop 容器名称/容器ID

或是重启:

1
docker restart 容器名称/容器ID

删除容器

如果我们不需要使用容器了,那么可以将容器删除,但是注意只有容器处于非运行状态时才可以删除:

先查看所有容器:

1
docker ps -a

如果要删除的容器仍在运行,先将其停止:

1
docker stop 容器名称/容器ID

最后删除:

1
docker rm 容器名称/容器ID

如果想要强制删除容器,加上-f就行:

1
docker rm -f 容器名称/容器ID

无论容器是否正在运行中或者已停止,都可被强制删除!

删除镜像

先查看Docker中的镜像:

1
docker images

想要删除镜像就得先删除此镜像的全部容器

只有容器处于非运行状态时才可以删除

先查看所有容器:

1
docker ps -a

如果要删除的容器仍在运行,先将其停止:

1
docker stop 容器名称/容器ID

删除容器:

1
docker rm 容器名称/容器ID

删除镜像:

1
docker rmi 镜像ID

镜像ID也是输入前三位就好

如果想要强制删除镜像,加上-f就行:

1
docker rmi -f 镜像ID

镜像中的容器状态为已停止或已删除的才能被强制删除,同时对应的容器也会被删除。若容器还在运行中,删除镜像会报错!