一、docker
Docker 是一种容器化平台,用于开发、交付和运行应用程序。它提供了一种轻量级、可移植、自给自足的容器化解决方案。Docker 的核心概念是容器,它可以将应用程序及其所有依赖项打包到一个标准化的单元中,这使得应用程序可以在任何支持 Docker 的环境中运行,无论是开发人员的本地机器、测试环境,还是生产服务器。
以下是 Docker 的一些关键特点和概念:
-
容器: Docker 使用容器来打包应用程序及其依赖项。容器是轻量级且独立的运行环境,包含了应用程序的代码、运行时、系统工具、系统库以及设置。
-
镜像: Docker 镜像是容器的模板,包含了运行应用程序所需的所有信息。镜像可以被分享、存储在 Docker Hub 或其他镜像仓库中,并能够快速部署到不同的环境。
-
Docker 引擎: Docker 引擎是用于创建和运行容器的核心组件。它是一个轻量级的运行时,可以在各种操作系统上运行,包括 Linux、Windows 和 macOS。
-
Docker Compose: Docker Compose 是一个工具,允许你通过一个配置文件定义多个容器之间的关系,从而轻松管理多个容器的应用程序。
-
Docker Hub: Docker Hub 是一个用于分享和管理 Docker 镜像的云服务平台。开发者可以在 Docker Hub 上找到各种各样的官方和社区创建的镜像,也可以将自己的镜像上传到 Docker Hub 供其他人使用。
使用 Docker 的主要好处包括:
-
环境一致性: Docker 确保应用程序在开发、测试和生产环境中具有一致的运行环境,消除了“在我的机器上可以工作”的问题。
-
轻量级: Docker 容器相对于传统虚拟机更轻量,启动更快,占用更少的资源。
-
可移植性: Docker 容器可以在任何支持 Docker 的环境中运行,简化了应用程序的部署和迁移。
-
弹性伸缩: Docker 支持快速扩展和缩小应用程序的容量,使其更适应变化的负载需求。
二、常用命令
run:创建一个新的容器并运行一个命令
start/stop/restart:开始、停止、重启容器
kill:杀死一个正在运行的容器
rm:删除一个或多少容器
pause/unpause:暂停/恢复容器中所有的进程
create:创建一个新的容器但不启动它
exec:在运行的容器中执行命令
容器操作
ps:列出容器
inspect:获取容器/镜像的元数据。
top:查看容器中运行的进程信息,支持 ps 命令参数。
attach:连接到正在运行中的容器
events:从服务器获取实时事件
logs:获取容器的日志
wait:阻塞运行直到容器停止,然后打印出它的退出代码
export:将文件系统作为一个tar归档文件导出到STDOUT
port:列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口
容器rootfs命令
commit:从容器创建一个新的镜像
cp:用于容器与主机之间的数据拷贝
diff:检查容器里文件结构的更改
镜像仓库
login:登陆/登出到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。
pull:从镜像仓库中拉取或者更新指定镜像
push:将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
search:从Docker Hub查找镜像
本地镜像管理
images:列出本地镜像
rmi:删除本地一个或多少镜像。
tag:标记本地镜像,将其归入某一仓库
build:命令用于使用 Dockerfile 创建镜像
history:查看指定镜像的创建历史
save:将指定镜像保存成 tar 归档文件。
import:从归档文件中创建镜像
常用清理,命令
杀死所有正在运行的容器
docker kill $(docker ps -a -q)
删除所有已经停止的容器
docker rm $(docker ps -a -q)
删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有镜像
docker rmi $(docker images -q)
docker容器和镜像易混淆的命令
删除 启动
镜像 docker rmi docker run
容器 docker rm docker start