什么是Docker
什么是Docker?
Docker 是一个开源的应用容器引擎,用于创建、管理和编排容器。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- 装应用的容器
- 开发、测试、运维都偏爱的容器化技术
- 轻量级
- 扩展性
- 一次构建、多次分享、随处运行
应用场景:
- Web 应用的自动化打包和发布
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他的后台应用
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境
Docker使用
创建第一个Hello world
Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",最后输出结果。
docker run ubuntu:15.10 /bin/echo "Hello world"
- docker: Docker 的二进制执行文件
- run: 与前面的 docker 组合来运行一个容器
- ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像
- /bin/echo "Hello world": 在启动的容器里执行的命令
运行交互式的容器
通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
docker run -i -t ubuntu:15.10 /bin/bash
- t: 在新容器内指定一个伪终端或终端
- i: 允许你对容器内的标准输入 (STDIN) 进行交互
exit 命令或者使用 CTRL+D 来退出容器。
启动容器(后台模式)
以下命令创建一个以进程方式运行的容:
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
在输出中没有期望的 "hello world",而是一串长字符,这叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。
通过 docker ps 来确认容器在运行:
- CONTAINER ID: 容器 ID
- IMAGE: 使用的镜像
- COMMAND: 启动容器时运行的命令
- CREATED: 容器的创建时间
- STATUS: 容器状态
状态有7种:
created(已创建)
restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡) - PORTS: 容器的端口信息和使用的连接类型(tcp\udp)
- NAMES: 自动分配的容器名称
在宿主主机内使用 docker logs 命令,查看容器内的标准输出:
docker logs cd48067b5deb
或
docker logs vigilant_robinson
停止容器
docker stop cd48067b5deb
或
docker stop vigilant_robinson
启动一个已经停止的容器实例
docker start 容器ID或容器名
步骤:
- 通过
docker ps -a
显示所有的容器(包括未运行的) - 查看已经暂停的容器实例信息
- 通过
docker start 容器ID或容器名
启动容器
删除已经停止运行的实例
docker rm 容器ID或者容器名