docker快速入门参考手册

本文介绍了Docker的基本概念,包括镜像、容器和仓库的使用,详细列举了常用命令和高级用法。涵盖了Docker的安装、生命周期管理、资源管理以及各种实用技巧和高级概念,适合Docker初学者和进阶者阅读。
摘要由CSDN通过智能技术生成

基础介绍

官网安装文档:https://docs.docker.com/engine/install/
架构图:
在这里插入图片描述

概念

  • Docker镜像(Images)
    镜像是一个用于创建 Docker容器(Container) 的静态模板,一个 Docker镜像(Images) 可以创建很多 Docker容器(Container);
    主要特点是,分层、写时复制、内容寻址 和 联合挂载
    核心概念主要涉及到:registry、repository、manifest、image 、layer 和 Dockerfile;
  • Docker容器(Container)
    Docker容器(Container) 是独立运行的一个或一组应用,是从 Docker镜像(Images) 创建的运行实例,它可以被启动、开始、停止、 删除。每个Docker容器(Container) 都是相互隔离的、保证安全的平台。我们可以把 Docker容器(Container) 看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
    Docker镜像(Images) 是只读的,Docker容器(Container) 在启动的时候创建一层可写层作为最上层。
  • Docker仓库(Registry)
    Docker仓库(Registry) 用来保存 Docker镜像(Images),是集中存放 Docker镜像(Images) 文件的场所。类似于Git。
    Docker仓库(Registry) 分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 Docker Pool 等,可以提供大陆用户更稳定快速的访问。

常用命令

Docker环境命令

docker info	查看容器基本信息。
docker version	查看容器版本信息。

Docker容器生命周期管理

docker create	创建一个新的容器,但不启动它。类似 docker run 命令
docker exec		在运行的 Docker 容器中执行一条命令。
docker run		创建一个新的容器,并运行它,区别于 docker create 命令
docker start	启动一个或多个已经被停止的容器,区别于 docker run 命令
docker stop		停止一个运行中的容器
docker restart	重启容器
docker kill		杀掉一个运行中的容器
docker rm		删除容器
docker pause	暂停一个或多个 Docker 容器的所有进程
docker unpause	恢复容器中所有的进程

Docker容器操作运维

docker ps		列出容器
docker inspect	获取容器/镜像的元数据
docker top		显示容器中正在运行的进程信息
docker attach	进入到一个正在运行的 Docker 容器
docker wait		用于阻塞一个或多个容器直到容器停止,然后打印退出代码
docker export	将容器里的文件系统作为一个 tar 归档文件导出到标准输出
docker port		列出指定的容器的端口映射,或者将容器里的端口映射到宿主机
docker rename	重命名一个容器
docker stats	动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O
docker update	更新一个或多个 Docker 容器的配置
# 日志相关:
docker events	用于打印出实时的系统事件
docker history	打印出指定的 Docker 镜像的历史版本信息
docker logs		打印 Docker 容器的日志

Docker镜像仓库命令

docker login	登录 Docker registry
docker logout	登出 Docker registry
docker pull		拉取一个 Docker 镜像或仓库到 registry
docker push		推送一个 Docker镜像或仓库到 registry
docker search	在 Docker Hub 中搜索 Dokcer 镜像

Docker本地镜像

docker build	根据 Dockerfile 文件构建一个 Docker 镜像
docker images	列出 Docker 镜像
docker rmi		删除一个或多个 Docker 镜像
docker tag		为 Docker 镜像创建一个新的标签
docker save		将 Docker 镜像保存成 tardocker import	从一个 tar 文件创建一个 Docker 镜像
docker load		从 tar 包或者标准输入加载 Docker 镜像
docker commit	根据 Docker 容器的更改创建一个新的 Dokcer 镜像。
docker cp		在本地文件系统与 Dokcer 容器之间复制文件或者文件
docker diff		用于比较一个 Docker 容器不同版本提交的文件差异
docker image inspect centos 查看镜像信息

Docker容器资源管理

docker container 管理 Docker 容器
docker image	管理 Docker 镜像
docker node		管理 Docker 节点
docker plugin	管理 Docker 插件
docker secret	管理 Docker 密钥
docker service	管理 Docker 服务
docker network	管理 Docker 网络
docker stack	管理 Docker 栈
docker swarm	管理 Docker 集群
docker system	管理 Docker 系统
docker volume	管理 Docker 卷

案例

HelloWorld

 docker search hello-world  远程仓库中搜索hello-world镜像
 docker image pull hello-world 拉取镜像到本地
 docker images (docker image ls) 查看本地镜像
 docker run hello-world 运行本地镜像,创建容器运行

 docker run -d --name mycs centos 后台运行centos容器,指定容器名为mycs
 docker run -d centos tail -f /dev/null 后台运行,保持容器进程一直运行,不退出容器
 docker kill 84aff7ca3a6e 杀掉后台运行的容器,id为84aff7ca3a6e
 docker run -it -d centos /bin/bash 以交互式后台方式运行
 docker rm 84aff7ca3a6e 删除容器

高级用法

# 端口映射:后台运行centos,宿主机监听8081端口绑定了内部的80端口,宿主机监听的IP可选
docker run -it -d --name mycs -p [127.0.0.1:]8081:80 centos
# 查看运行的容器
docker ps
# 查看容器名为mycs的端口映射:
docker port mycs 

# 目录共享:后台运行centos,容器的/etc目录共享到宿主机的/tmp目录(容器停止后原来共享的目录在宿主机不会被删除)
docker run -it -d --name mycs -v /tmp:/etc centos

# 执行容器命令
docker exec -it 容器id cat /etc/hosts   (/bin/bash、/bin/sh)
# 进入容器
docker attach 1bf0f43c4d2f
docker exec -it 容器id /bin/bash

# 退出/离开容器
ctrl+p & ctrl+q

# 删除所有的 docker 容器:
docker rm $(docker ps -aq)  / docker rm -f  `docker ps -a -q`

# docker服务重启,容器自动重启,指定运行平台
docker run -it --restart=always --platform linux/amd64 --name dgraph dgraph/standalone:v21.03.0  

# 导出镜像
docker image save centos > docker-centos.tar.gz
# 导入镜像
docker image load -i docker-centos.tar.gz  

docker buildx build --platform linux/amd64,linux/arm64
#删除镜像
docker image rm centos:latest

高级概念、原理

分层

容器层保存的是镜像变化的部分,只有容器层是可写的,容器层下面的所有镜像层都是只读的。
镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。如果不同层中有一个相同路径的文件,比如 /a,上层的 /a 会覆盖下层的 /a,也就是说用户只能访问到上层中的文件 /a。在容器层中,用户看到的是一个叠加之后的文件系统
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福&缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值