Docker介绍
什么是容器
容器是应用层的抽象,它是一个标准化的单元。上图左侧是基于容器的应用,右侧是基于虚拟机的应用。容器里是不包含操作系统相关的一些内容的,所以这样相对于虚拟机来说就比较轻量级一些。
认识Docker
Docker最早是一家做PaaS的公司dotCloud开源的一个高级容器引擎。不过无心插柳柳成荫的是 dotCloud公司做的PaaS名气不大,但是开源的这个容器引擎被广泛使用。一般我们使用命令行客户端与DOCKER_HOST上的守护进程交互,在守护进程中管理镜像,把镜像变成一个个具体的容器。所有的镜像托管于类似Docker Hub这样一个Registry里。
不同人眼中的Docker
对于开发而言
- 简化了重复搭建开发环境的工作
对于运维而言
- 交付系统更为流畅
- 伸缩性更好
Docker常用命令
镜像相关
- docker pull
- docker search
容器相关
- docker run
- docker start/stop <容器名>
- docker ps <容器名>
- docker logs <容器名>
docker run的常用选项
docker run [options] image [command] [arg...]
选项说明
- -d ,后台运行
- -e,设置环境变量
- -p 宿主端口:容器端口
- --name,指定容器名称
- -v 宿主目录:容器目录,挂载磁盘卷
- -i:允许对容器内的标准输入进行交互
- -t:在新容器内指定一个伪终端
举个🌰
启动容器并执行命令
docker run ubuntu:15.10 /bin/echo "Hello world"
docker run [镜像名称] [创建容器后执行的命令]
与容器进行交互
docker run -i -t ubuntu:15.10 /bin/bash
docker run [options] [镜像名] [执行的命令]
后台启动容器
docker run -d ubuntu:15.10
docker run [options] [镜像名]
docker ps的常用操作
- docker ps:查看运行的容器
- docker ps -a:查看所有的容器
- docker ps -q:只显示容器的编号
docker exec的常用操作
- docker exec -it [container id] /bin/bash
docker start的操作
- docker start [container id]:启动一个容器
docker export导出
- docker export [contatiner id] > file_name.tar:导出某个容器
docker import导入
- docker import my_ubuntu_v3.tar runoob/ubuntu:v4:从文件创建镜像
国内Docker镜像配置
官方Docker Hub
官方镜像
阿里云镜像
知行合一