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时,需要设置镜像源,不然会很慢,但是我配置了镜像源之后还是偶尔出现超时错误,或许和我开启了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
4docker pull <image>
docker pull <image>:<tag>
# 示例
docker pull ubuntu:18.04
查看镜像信息
1 |
|
- REPOSITORY: 镜像的名称,表示该镜像所属的仓库。 - TAG: 镜像的标签,表示该镜像的版本。 - IMAGE ID: 镜像的ID,表示该镜像的唯一标识。 - CREATED: 镜像的创建时间。 - SIZE: 镜像的大小,以字节为单位。
删除镜像
1 |
|
docker rmi
命令用于删除一个或多个镜像,image参数可以是镜像的ID或者名称,多个镜像之间用空格隔开。
新建启动容器
1 |
|
- --it: 启动容器并进入交互式shell。
- --rm: 退出后删除这个容器,当然没有这句话就不删除。
启动和停止容器
1 |
|
这里的container指容器的ID或者名称,可以通过docker ps
命令查看。
- Container ID:
容器的ID,唯一标识符。 - Image: 容器使用的镜像。 -
Command: 容器启动时执行的命令。 -
Status: 容器的运行状态。 - Ports:
容器映射的端口。 - Names: 容器的名称。
删除容器
1 |
|
docker rm
命令用于删除一个或多个容器。container参数可以是容器的ID或者名称,多个容器之间用空格隔开。
根据dockerfile创建镜像
1 |
|
-t image
:-t
选项用来为新创建的镜像指定一个名称<image_name>
path
: 表示Dockerfile所在的路径
不过该方法还没有实现过,dockerfile也很有讲究,那就To be continued~