Docker安装与镜像下载和删除(优雅)
Docker安装与镜像下载和删除(优雅)
环境:Ubuntu 22.04.3 LTS
Docker安装
首先安装一些工具:
1 | sudo apt-get install ca-certificates curl gnupg lsb-release |
接着安装官方的GPG key:
1 | sudo mkdir -p /etc/apt/keyrings |
最后将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 |
镜像中的容器状态为已停止或已删除的才能被强制删除,同时对应的容器也会被删除。若容器还在运行中,删除镜像会报错!