拥抱云原生:Docker 指令小析
拥抱云原生:Docker 指令小析
Docker 指令一览
docker --help
Claude-3 提供翻译
Usage: docker [OPTIONS] COMMAND
用法: docker [选项] 命令
A self-sufficient runtime for containers
一个自包含的容器运行时环境
Common Commands:
常用命令:
run Create and run a new container from an image
run 从镜像创建并运行一个新的容器
exec Execute a command in a running container
exec 在正在运行的容器中执行命令
ps List containers
ps 列出容器
build Build an image from a Dockerfile
build 从Dockerfile构建镜像
pull Download an image from a registry
pull 从仓库下载镜像
push Upload an image to a registry
push 将镜像推送到仓库
images List images
images 列出镜像
login Log in to a registry
login 登录到仓库
logout Log out from a registry
logout 从仓库登出
search Search Docker Hub for images
search 在Docker Hub上搜索镜像
version Show the Docker version information
version 显示Docker版本信息
info Display system-wide information
info 显示系统范围的信息
Management Commands:
管理命令:
builder Manage builds
builder 管理构建
buildx* Docker Buildx
buildx* Docker Buildx
compose* Docker Compose
compose* Docker Compose
container Manage containers
container 管理容器
context Manage contexts
context 管理上下文
image Manage images
image 管理镜像
manifest Manage Docker image manifests and manifest lists
manifest 管理Docker镜像清单和清单列表
network Manage networks
network 管理网络
plugin Manage plugins
plugin 管理插件
system Manage Docker
system 管理Docker
trust Manage trust on Docker images
trust 管理Docker镜像的信任
volume Manage volumes
volume 管理数据卷
Swarm Commands:
Swarm 命令:
swarm Manage Swarm
swarm 管理Swarm
Commands:
命令:
attach Attach local standard input, output, and error streams to a running container
attach 将本地标准输入、输出和错误流附加到正在运行的容器
commit Create a new image from a container's changes
commit 从容器的更改创建一个新镜像
cp Copy files/folders between a container and the local filesystem
cp 在容器和本地文件系统之间复制文件/文件夹
create Create a new container
create 创建一个新的容器
diff Inspect changes to files or directories on a container's filesystem
diff 检查容器文件系统上的文件或目录变更
events Get real time events from the server
events 获取服务器上的实时事件
export Export a container's filesystem as a tar archive
export 将容器的文件系统导出为tar档案
history Show the history of an image
history 显示镜像的历史
import Import the contents from a tarball to create a filesystem image
import 从tarball导入内容以创建文件系统镜像
inspect Return low-level information on Docker objects
inspect 返回Docker对象的底层信息
kill Kill one or more running containers
kill 终止一个或多个正在运行的容器
load Load an image from a tar archive or STDIN
load 从tar归档文件或标准输入加载镜像
logs Fetch the logs of a container
logs 获取容器的日志
pause Pause all processes within one or more containers
pause 暂停一个或多个容器内的所有进程
port List port mappings or a specific mapping for the container
port 列出容器的端口映射或特定映射
rename Rename a container
rename 重命名容器
restart Restart one or more containers
restart 重启一个或多个容器
rm Remove one or more containers
rm 删除一个或多个容器
rmi Remove one or more images
rmi 删除一个或多个镜像
save Save one or more images to a tar archive (streamed to STDOUT by default)
save 将一个或多个镜像保存到tar归档文件(默认输出到标准输出)
start Start one or more stopped containers
start 启动一个或多个已停止的容器
stats Display a live stream of container(s) resource usage statistics
stats 显示容器资源使用情况的实时流
stop Stop one or more running containers
stop 停止一个或多个正在运行的容器
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
tag 创建一个引用SOURCE_IMAGE的TARGET_IMAGE标签
top Display the running processes of a container
top 显示容器内正在运行的进程
unpause Unpause all processes within one or more containers
unpause 恢复一个或多个容器内所有进程
update Update configuration of one or more containers
update 更新一个或多个容器的配置
wait Block until one or more containers stop, then print their exit codes
wait 阻塞直到一个或多个容器停止,然后打印它们的退出码
Global Options:
全局选项:
--config string Location of client config files (default "/root/.docker")
--config string 客户端配置文件的位置(默认为"/root/.docker")
-c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
-c, --context string 用于连接守护进程的上下文名称(覆盖DOCKER_HOST环境变量和使用"docker context use"设置的默认上下文)
-D, --debug Enable debug mode
-D, --debug 启用调试模式
-H, --host list Daemon socket to connect to
-H, --host list 要连接的守护进程套接字
-l, --log-level string Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
-l, --log-level string 设置日志级别("debug", "info", "warn", "error", "fatal")(默认为"info")
--tls Use TLS; implied by --tlsverify
--tls 使用TLS;由--tlsverify隐含
--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
--tlscacert string 仅信任此CA签名的证书(默认为"/root/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
--tlscert string TLS证书文件的路径(默认为"/root/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/root/.docker/key.pem")
--tlskey string TLS密钥文件的路径(默认为"/root/.docker/key.pem")
--tlsverify Use TLS and verify the remote
--tlsverify 使用TLS并验证远程
-v, --version Print version information and quit
-v, --version 打印版本信息并退出
Run 'docker COMMAND --help' for more information on a command.
运行'docker 命令 --help'可获取该命令的更多信息。
For more help on how to use Docker, head to https://docs.docker.com/go/guides/
欲了解如何使用Docker的更多帮助,请访问 https://docs.docker.com/go/guides/
Docker 的架构图
- Client: 客户端 操作 Docker的客户端 (命令行或者界面)。
- Docker_Host: Docker 主机 安装Docker 服务的主机。
- Docker daemon: 后台进程,运行Docker 服务的后台进程。
- Containers: 容器 在Docker 服务中的 容器,一个容器就是一个镜像实例,容器之间是相互隔离的。
- Images: 镜像,Image 可以看作是一个容器的启动模板,里面包含的启动镜像所需要环境以及基础配置。一个镜像可以启动多个容器。
- Registry Docker 镜像仓库,存储Docker Images 的地方。
容器和虚拟机的区别
Docker 安装小提示
安装 Docker Desktop
Linux 安装 Docker Engine
Docker 隔离原理
namespace 6项隔离
namespace | 系统调用参数 | 隔离内容 |
---|---|---|
UTS | CLONE_NEWUTS | 主机和域名 |
IPC | CLONE_NEWIPC | 信号量,消息队列和共享内存 |
PID | CLONE_NEWPID | 进程编号 |
Network | CLONE_NETENT | 网络设备,网络栈,端口 |
Mount | CLONE_NEWNS | 挂载点 |
User | CLONE_NEWUSER | 用户和用户组 |
cgroups 资源限制
cgroup 提供的功能
- 资源限制: 限制任务使用的资源,并在超过
配额
时,发出提示 - 优先级分配: 分配CPU时间片数量以及磁盘IO带宽大小,控制任务运行的优先级
- 资源统计: 统计系统资源使用量。如 CPU使用时长,内存用量
- 任务控制: 对任务执行挂起,恢复等操作
子系统 | 功能 |
---|---|
CPU | 使用调度程序控制任务对CPU的使用 |
cpuacct (CPU Accounting) | 自动生成cgroup中任务对CPU资源使用情况的报告 |
cpuset | 为cgroup中的任务分配独立的CPU(多处理器系统时)和内存 |
devices | 开启或关闭cgroup中任务对设备的访问 |
freezer | 挂起或恢复cgroup中任务 |
memory | 设定cgroup中任务对内存使用量的限定,并生成这些任务对资源使用情况报告 |
perf_event(Linux CPU 性能探测器) | 使cgroup中任务可以进行统一的性能测试 |
net_cls (Docker 未使用) | 通过等级识别标识符标记网络数据包,从而允许Linux流量监控程序(Traffic Controller) 识别从具体cgroup中生成数据包 |
Docker 指令手册
如何获取镜像
默认是从 Docker Hub
基于 Docker Client 操作镜像
docker login
登录到
docker registry
docker login
docker 官方说明
Claude-3 说明
docker logout
退出
docker registry
的登录
docker logout
docker 官方说明
Claude-3 说明
docker search
搜索镜像指令
docker search redis
docker 官方说明
ChatGPT 说明
docker pull
从远程镜像仓库获取镜像
docker pull
docker 官方说明
Claude-3 说明
docker push
推送镜像到远程仓库
docker push
docker 官方说明
Claude-3 说明
docker images
查看你本地已经有的
images
# 完整指令
docker image ls
# 缩写指令
docker images
docker 官方说明
ChatGPT的说明
docker rmi
image
的删除操作
# 完整指令
docker image rm
# 缩写 指令
docker rmi
docker 官方说明
ChatGPT 说明
批量删除 image
# 删除未被使用的镜像
docker rmi $(docker images -aq)
# 删除全部镜像包括正在使用的镜像
docker rmi -f $(docker images -aq)
docker tag
给镜像重命名
docker tag
docker 官方说明
ChatGPT的说明
docker image history
查看
image
历史
docker image history
docker 官方说明
ChatGPT 说明
docker build
通过
Dockerfile
在本地构建一个image
docker build
docker 官方说明
Claude-3 说明
docker image inspect
查看
image
的元数据
docker image inspect
docker 官方说明
Claude-3 说明
docker import
从远程URL 或者本地 压缩包导入一个镜像
docker import
docker 官方说明
Claude-3 说明
docker save
打包
image
docker save
docker 官方说明
Claude-3 说明
docker load
从 压缩包中加载
image
docker load
docker 官方说明
Claude-3 说明
docker image prune
删除本地游离的对象
docker image prune
docker 官方说明
Claude-3 说明
什么是游离的对象
容器的创建
docker create
从 镜像中创建一个容器,但是这个容器并没有运行,需要 使用
docker start
将其启动
docker 官方说明
Claude-3 说明
举个栗子
docker create -p 80:80 --name nginx-demo nginx:latest
docker ps -a --filter 'status=created'
docker kill
kill 正在运行的容器
docker 官方说明
Claude-3 说明
docker stop
优雅停止真正运行的容器
docker 官方说明
Claude-3 说明
docker run
运行一个docker 容器
docker 官方说明
Claude-3 说明
docker exec
进入到一个后台启动的容器内部
docker 官方说明
Claude-3 说明
docker attach
连接到一台正在运行的docker 容器
docker 官方说明
Claude-3 说明
docker commit
基于正在运行的容器创建一个新的docker 镜像
docker 官方说明
Claude-3 说明
docker export
将正在运行的docker容器打包成一个压缩包
docker 官方说明
Claude-3 说明
小提示
docker export 到处的镜像,需要使用 原镜像的启动命令来启动
如何查看原镜像的启动命令
在原镜像所在服务器查执行
docker ps --no-trunc -f 'name=nginx-demo' #原镜像名称
docker inspect
查看容器的详情信息
docker 官方说明
Claude-3 说明
容器的状态
Claude-3