一、什么是Docker?
Docker通过提供一种标准化、隔离、便携和高效的方式来打包、分发和运行应用程序,极大地简化了应用程序的部署和管理。
形象化的解释:
Docker就像一个超级高效的集装箱运输系统,但这次它运输的不是货物,而是应用程序及其运行环境。
- 标准化:每个集装箱(Docker容器)都有相同的尺寸和接口,这意味着无论你的货物(应用程序)是什么,都可以装入这些标准化的集装箱中。这样,无论是运输到哪个港口(服务器或云环境),都能确保货物(应用程序)的安全和完整。
- 隔离:每个集装箱内部都是独立的。即使两个集装箱都装有相同类型的货物(比如两个相同的应用),它们之间也不会互相干扰。这意味着你可以在同一个码头(服务器)上运行多个应用程序,而不会担心它们之间的冲突。
- 便携性:集装箱使得货物(应用程序)可以轻松地从一个地方移动到另一个地方,而不需要重新打包或改变其内部结构。这类似于Docker容器,你可以轻松地将应用程序从一个开发环境移动到生产环境,只需“提起”并“放下”这个集装箱。
- 效率:集装箱运输大大提高了运输效率,减少了装卸时间和成本。Docker也是如此,它使得应用程序的部署、管理和扩展变得更加高效和快速。
二、Docker的核心概念
- 镜像(Image) :这是集装箱的设计图纸,包含了应用程序的所有代码、依赖库、配置文件等。你可以根据这个图纸来制造一个或多个集装箱(容器)。
- 容器(Container) :这是根据镜像创建的实例,相当于一个正在运行的集装箱。每个容器都是独立的,有自己的操作系统环境、文件系统、网络等。
- 仓库(Registry) :这是一个存储镜像的地方,类似于集装箱的仓库。你可以从仓库中拉取(下载)镜像来创建容器,也可以将自己的镜像推送到仓库中供他人使用。
三、Docker的基本使用
1、Docker服务管理命令
-
启动Docker服务
systemctl start docker该命令用于启动Docker服务。
-
关闭Docker服务
systemctl stop docker该命令用于关闭Docker服务。
-
重启Docker服务
systemctl restart docker该命令用于重启Docker服务。
-
设置Docker开机启动
systemctl enable docker该命令用于设置Docker服务在系统启动时自动启动。
-
查看Docker运行状态
systemctl status docker该命令用于查看Docker服务的运行状态。
2、Docker镜像管理命令
-
查看本地镜像列表
docker images该命令用于列出本地存储的所有Docker镜像。如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 7 months ago 13.3kB
- REPOSITORY: 镜像的名称或仓库名。
- TAG: 镜像的标签,通常用于版本控制。
- IMAGE ID: 镜像的唯一标识符。
- CREATED: 镜像的创建时间。
- SIZE: 镜像的大小。
-
搜索远程镜像
docker search [镜像名]该命令用于在Docker Hub等远程仓库中搜索指定的镜像。
-
拉取远程镜像
docker pull [镜像名]:[tag]如果不指定tag,则默认拉取latest版本的镜像。该命令用于从远程仓库下载指定的镜像到本地。
-
删除本地镜像
docker rmi -f [镜像名/镜像ID]该命令用于删除指定的本地镜像。
-
查看镜像、容器、数据卷所占用的空间
docker system df该命令用于分析Docker磁盘使用情况,包括镜像、容器和数据卷所占用的空间。
-
保存镜像为tar文件
docker save [镜像名/镜像ID] -o [保存路径和文件名].tar该命令用于将指定的镜像保存为tar压缩文件,方便镜像的转移和保存。
-
加载tar文件中的镜像
docker load -i [tar文件路径]该命令用于从tar压缩文件中加载镜像,使其恢复为一个可用的Docker镜像。
3、Docker容器管理命令
-
运行容器
docker run [OPTIONS] [IMAGE] [COMMAND] [ARG...]其中,OPTIONS为可选参数,用于配置容器的各种选项,如端口映射、容器名称等;IMAGE为要运行的镜像名称或ID;COMMAND和ARG为可选的命令和参数,用于在容器内执行特定的命令。
-
查看正在运行的容器
docker ps该命令用于列出当前所有正在运行的容器。
-
查看所有容器(包括未运行的)
docker ps -a -
停止容器
docker stop [容器名/容器ID]该命令用于停止正在运行的容器。
-
启动已停止的容器
docker start [容器名/容器ID]该命令用于启动已经停止运行的容器。
-
重启容器
docker restart [容器名/容器ID]该命令用于重启正在运行的容器。
-
删除容器
docker rm -f [容器名/容器ID]该命令用于删除已经停止运行的容器。如果容器正在运行,则需要先停止容器再删除。
-
进入容器内部
docker exec -it [容器名/容器ID] /bin/bash或
docker attach [容器名/容器ID]但推荐使用
docker exec命令,因为docker attach命令在退出时会导致容器停止。docker exec命令可以在容器内部执行特定的命令,并保持容器的运行状态。 -
查看容器日志
docker logs [容器名/容器ID]该命令用于查看容器的日志输出。
-
查看容器详细信息
```
docker inspect [容器名/容器ID]
```
该命令用于获取容器的详细信息,包括配置、状态、网络设置等。
11. 复制文件或目录到容器中
```
docker cp [主机路径] [容器名/容器ID]:[容器路径]
```
该命令用于将主机上的文件或目录复制到容器中指定的路径下。
12. 从容器中复制文件或目录到主机
```
docker cp [容器名/容器ID]:[容器路径] [主机路径]
```
该命令用于将容器中的文件或目录复制到主机上指定的路径下。