Skip to content

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

实例操作