目录
一、基本概念
1、Docker 和虚拟机技术的不同
- 传统虚拟机,通过虚拟硬件运行完整的操作系统,然后在这个系统上安装和运行软件。
- 容器内的应用直接运行在宿主机的内容中,容器自身没有内核,也没有虚拟硬件,更轻便。
- 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
2、Docker 的优点
- 应用更快速的交付和部署。
- 更便捷的升级和扩缩容。
- 更简单的系统运维。
- 更高效的计算资源利用。
3、基础概念
- 镜像(Image):Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
- 容器(container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
- DockerHub:DockerHub 是一个 Docker 镜像的托管平台。这样的平台称为 DockerRegistry。
- Docker 是一个 CS 架构的程序,由两部分组成:
- 服务端(server):Docker 守护进程,负责处理 Docker 指令,管理镜像、容器等。
- 客户端(client):通过命令或 RestAPI 向 Docker 服务端发送指令。可以在本地或远程向服务端发送指令。
二、Docker 命令
1、Docker 启动、关闭、查看状态
- 启动 Docker:systemctl start docker
- 关闭 Docker:systemctl stop docker
- 查看 Docker 的运行状态:systemctl status docker
2、Docker 查看版本、系统信息、帮助
- 查看版本:docker version
- 显示系统信息(包括镜像和容器的数量等):docker info
- 帮助命令: docker --help
3、镜像 image 查看、搜索、下载、删除
- 启动 image:docker run 镜像名
- 查看所有已安装的 image:docker images
- 列出所有镜像:-a, --all
- 只显示镜像的 id:-q, --quiet
- 搜索 image:docker search 应用名
- 下载 image(不指定版本,默认下载最新版):docker pull 应用名
- 下载 image(指定版本,版本必须是 docker 仓库中有的):docker pull 应用名:版本号
- 删除 image(指定删除):docker rmi -f 镜像id
- 删除 image(多个删除):docker rmi -f 镜像id 镜像id 镜像id
- 删除 image(全部删除):docker rmi -f $(docker images -aq)
4、容器 新建并启动、进入终端、退出终端
- 新建并启动:docker run [可选参数] 镜像名
- 指定容器名:--name=“容器名”
- 后台方式运行(没有前台程序运行时,Docker 会直接 kill 后台程序):-d
- 使用交互方式运行(进入容器查看内容):-it
- 指定容器的端口:-p
- 容器端口
- -p 容器端口
- -p 主机端口:容器端口 (常用)
- -p ip:主机端口:容器端口
- 随机指定端口:-P
- 进入已经启动的容器(新建终端):docker exec -it 容器id /bin/bash
- 进入已经启动的容器:docker attach 容器id
- 停止容器,退出终端:exit
- 不停止容器,退出终端(快捷键):Ctrl+P+Q
5、容器 查看运行状态、删除
- 查看运行状态:docker ps
- 包括运行历史记录:-a
- 删除指定容器(不能删除正在运行的容器):docker rm 容器id
- 强制删除运行中容器:docker rm -f 容器id
- 删除所有的容器:docker rm -f $(docker ps -aq)
- 删除所有的容器(管道方式):docker ps -a -q | xargs docker rm
6、容器 启动、重启、停止
- 启动:docker start 容器id
- 重启:docker restart 容器id
- 停止:docker stop 容器id
- 强制停止:docker kill 容器id
7、其他常用命令
- 显示日志(在终端上打印日志):docker logs -tf --tail 需打印的记录数 容器id
- 查看容器中的进程信息:docker top 容器id
- 查看镜像元数据:docker inspect 容器id
- 拷贝数据:docker cp 容器id:源文件路径 目标路径
三、命令总结
attach
- Attach to a running container
- # 当前 she11 下 attach 连接指定运行镜像
build
- Build an image from a Dockerfile
- # 通过 Dockerfile 定制镜像
commit
- Create a new image from a container changes
- #提交当前容器为新的镜像
cp
- Copy files/folders from the containers filesystem to the host path
- #从容器中拷贝指定文件或者目录到宿主机中
create
- Create a new container
- #创建一个新的容器,同run,但不启动容器
diff
- Inspect changes on a container's filesystem
- #查看docker容器变化
events
- Get real time events from the server
- #从docker服务获取容器实时事件
exec
- Run a command in an existing container
- #在已存在的容器上运行命令
export
- Stream thecontents of a container as a tararchive
- #导出容器的内容流作为一个 tar 归档文件[对应 import ]
history
- show the history of an image
- #展示一个镜像形成历史
images
- List images
- #列出系统当前镜像
import
- Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系
- 统映像[对应export]
info
- Display system-wide information
- #显示系统相关信息
inspect
- Return low-level information on a container
- #查看容器详细信息
kill
- Kill a running container
- #kill指定docker容器
load
- Load an image from a tar archive
- #从一个tar包中加载一个镜像(对应save)
login
- RegisterorLogin to the docker registryserver
- #注册或者登陆一个docker源服务器
logout
- Log out from a Docker registry server
- #从当前Dockerregistry退出
logs
- Fetch the logs of a container
- #输出当前容器日志信息
port
- Lookupthepublic-facingport whichis NAT-edtoPRIVATE_PoRT
- 查看映射端口对应的容器内部源端口
pause
- Pause all processeswithina container
- #暂停容器
ps
- List containers
- #列出容器列表
pull
- Pull an image or a repository from the docker registry server
- #docker镜像源服务器拉取指定镜像或者库镜像
push
- Push an image or a repository to the docker registry server
- #推送指定镜像或者库镜像至docker源服务器
restart
- Restart a running container
- #重启运行的容器
rm
- Remove one or more containers
- #移除一个或者多个容器
rmi
- Remove one or more images
- #移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或-f强制删除
run
- Run a command in a new container
- #创建一个新的容器并运行一个命令
save
- Save an image to a tar archive
- #保存一个镜像为一个tar包(对应load)
search
- Search for an image on the Docker Hub
- #在dockerhub中搜索镜像
start
- Start a stopped containers
- #启动容器
stop
- Stop a running containers
- #停止容器
tag
- Tag an image into a repository
- #给源中镜像打标签
top
- Lookup the running processes of a container
- #查看容器中运行的进程信息
unpause
- Unpause a paused container
- #取消暂停容器
version
- Show the docker version information
- #查看docker版本号
wait
- Block until a container stops, then print its exit code
- #截取容器停止时的退出状态值