docker
Docker 是一个开源的应用容器
引擎,基于 Go 语言
并遵从 Apache2.0 协议开源。
容器是完全使用沙箱机制
,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
。
Docker 版本(从 17.03 之后):
- CE(Community Edition: 社区版)
- EE(Enterprise Edition: 企业版)
Docker 架构
仓库(Repository):仓库可看成一个代码控制中心,用来
保存镜像
。镜像(Image):简单立即成一个包,我们需要这个包就去仓库下载,类似于面向对象程序设计中的类
容器(Container):运行下载后的包,等到的实例。容器可以被创建、启动、停止、删除、暂停等。
主机: 安装 docker 的机器,用于执行 Docker 守护进程和容器。
Docker 的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
Docker 命令大全
容器生命周期管理
run
bash
docker run -it -d nginx
start/stop/restart
bash
docker start/stop/restart Id
rm
bash
# 删除容器
docker rm Id
pause/unpause
bash
# 暂停容器
docker pause/unpause Id
exec
bash
docker exec -it nginx /bin/bash
容器操作
ps
bash
# 运行中的实例
docker ps
# 所有容器实例
docker ps -a
inspect
bash
# 查看容器所有信息
docker inspect 容器Id
top
bash
# 查看容器mysql的进程信息。
docker top mysql
events
bash
# 显示docker 镜像为mysql:5.6 2016年7月1日后的相关事件。
docker events -f "image"="mysql:5.6" --since="1467302400"
logs
bash
# -f 实时
# -t 时间范围
docker logs -f -t --since="2019-05-11" --tail=10 nginx
stats
bash
# 监控容器资源消耗,CPU,内存等资源的使用情况。
# 如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态
docker stats --no-stream
容器 rootfs 命令
commit
bash
# 通过容器创建镜像
# dd85eb055fe8 容器id
# yh/centos:v0.1 创建的镜像名
docker commit -m="首次提交" -a="作者姓名" dd85eb055fe8 yh/centos:v0.1
cp
bash
# 将容器 0000的/www目录拷贝到主机的/www目录中。
docker cp 0000:/www /www/
镜像仓库
login
bash
docker login
docker login 私有仓库地址
# 退出
docker logout
push
bash
# docker push <username>/<repository>:<tag>
docker push jiatingyu/ziyu:v1
search
bash
docker search xxxx
pull
bash
docker pull xxx
本地镜像管理
查看所有镜像
bash
docker images
rmi
bash
# 删除某一个镜像
docker rmi xxx
tag
bash
# docker tag <image-name:tag> <username>/<repository>:<tag>
docker tag deploy-dy:v1 jiatingyu:ziyu:v1
build
bash
# 构建镜像
docker build -f /path/Dockerfile .
history
bash
# 镜像历史查询
docker history nginx
save 、load export 、import
info|version
info
bash
# 查看docker系统信息。
docker info
version
bash
# 显示 Docker 版本信息。
docker version