Docker学习

很久之前就下载了Docker,但是因为种种原因一直搁置,也没有学习,今天一起来学一学吧~😄😄 ## Docker介绍 Docker是一个开源平台,允许开发者打包、分发和运行应用程序容器,使用容器来隔离应用程序和以来项,使得应用能够在不同环境中一致运行。

在和Skyee聊天的时候,她说她用的是Docker Compose,这是一个工具,使得用户可以一次性启动、停止和管理多个Docker容器,而不需要单独管理每个容器,具体内容没有详细看,在这里先以Docker为主!

重要概念

  • 镜像(Image): 镜像是一个只读的模板,用于创建容器,可以从Docker Hub等公共库中下载,也可以通过Dockerfile自定义构建。比方说我从Docker Hub下载的Centos、Ubuntu等都称为镜像。
  • 容器(Container): 容器是镜像的运行实例,可以启动、停止、删除,是一个轻量级的、独立的可执行环境。
  • 仓库(Repository): 仓库是镜像的存储库,可以上传、下载镜像,也可以自定义镜像。可以是本地的,也可以是Docker Hub等公共库。
  • Dockerfile: Dockerfile是一个文本文件,用于定义如何构建镜像,用户使用dockerfile自定义镜像。

模仿着画了一张图,展示容器和镜像的关系: Docker学习-容器和镜像的关系 在这个图中,更细致地指出了Docker镜像是由多个只读层组成的,容器是在镜像之上启动的,会在镜像之上创建一个可读写层,容器的更改都发生在这一层,不会影响下面的只读层。

常用命令

设置镜像

在国内使用Docker时,需要设置镜像源,不然会很慢,但是我配置了镜像源之后还是偶尔出现超时错误,或许和我开启了VPN有关,不过总而言之还是需要设置镜像源。 我使用的Docker Desktop,在settings -> Docker Engine中添加如下内容:

1
2
3
4
5
6
7
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
### 下载镜像
1
2
3
4
docker pull <image>
docker pull <image>:<tag>
# 示例
docker pull ubuntu:18.04
Docker学习-下载报错示例 Docker学习-正常下载示例

查看镜像信息

1
2
3
4
docker images
docker images <image>
# 示例
docker images ubuntu

Docker学习-查看镜像信息 - REPOSITORY: 镜像的名称,表示该镜像所属的仓库。 - TAG: 镜像的标签,表示该镜像的版本。 - IMAGE ID: 镜像的ID,表示该镜像的唯一标识。 - CREATED: 镜像的创建时间。 - SIZE: 镜像的大小,以字节为单位。

删除镜像

1
2
3
docker rmi <image>
# 示例
docker rmi ubuntu:18.04

docker rmi命令用于删除一个或多个镜像,image参数可以是镜像的ID或者名称,多个镜像之间用空格隔开。

新建启动容器

1
2
3
4
docker run --it --rm <image> <command>
# 示例
docker run --it --rm ubuntu:18.04 /bin/bash
docker run --it --rm ubuntu:18.04 /bin/bash -c "echo hello world"
  • --it: 启动容器并进入交互式shell。
  • --rm: 退出后删除这个容器,当然没有这句话就不删除。
Docker学习-新建容器

启动和停止容器

1
2
docker start <container>
docker stop <container>

这里的container指容器的ID或者名称,可以通过docker ps命令查看。 Docker学习-启动容器 - Container ID: 容器的ID,唯一标识符。 - Image: 容器使用的镜像。 - Command: 容器启动时执行的命令。 - Status: 容器的运行状态。 - Ports: 容器映射的端口。 - Names: 容器的名称。

删除容器

1
docker rm <container>

docker rm命令用于删除一个或多个容器。container参数可以是容器的ID或者名称,多个容器之间用空格隔开。 Docker学习-删除容器

根据dockerfile创建镜像

1
docker build -t <image>:<tag> <path>
  • -t image:-t选项用来为新创建的镜像指定一个名称<image_name>
  • path: 表示Dockerfile所在的路径

不过该方法还没有实现过,dockerfile也很有讲究,那就To be continued~


Docker学习
https://august6676.github.io/2024/09/30/Docker学习/
作者
Xiaoxuan Zhou
发布于
2024年9月30日
许可协议
git几步曲 下一篇