什么是docker
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。
为什么使用docker
- 更快速的交付和部署
- 更高效的虚拟化
- 更轻松的迁移和扩展
- 更简单的管理
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
docker的基本概念
镜像(image)
docker镜像就是一个只读模版。一个镜像可以包含一个完整的ubuntu操作系统环境。镜像可以用来创建docker容器。
容器(container)
docker利用容器来运行其他应用。容器是从镜像创建的实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。镜像是只读的,容器在启动的时候创建一层可写层作为最上层。
docker仓库(repository)
仓库是集中存放镜像文件的场所。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓 库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来 就可以了。
安装
我是mac,所以参照来官方网站mac版的安装教程。 这里不再详述。
docker的基本操作
docker pull
可以使用 docker pull 命令来从仓库获取所需要的镜像。
Wangs-MacBook-Pro:~ wxc575843$ docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 43c265008fae: Already exists af36d2c7a148: Pull complete 2b7b4d10e1c1: Pull complete 35dfd23791b5: Pull complete fa0aca12f0dd: Downloading [=======================> ] 36.23 MB/77.74 MB 6e3e424fb5e8: Download complete 9707fd7c2520: Download complete bc96a5a31454: Download complete 02c274ea6f09: Download complete 0816d68406c9: Download complete 6dd15d6d17e3: Download complete
docker images
使用 docker images 显示本地已有的镜像。
在列出信息中,可以看到几个字段信息
- 来自于哪个仓库,比如 ubuntu
- 镜像的标记,比如 14.04
- 它的 ID 号(唯一)
- 创建时间
- 镜像大小其中镜像的 ID 唯一标识了镜像
Wangs-MacBook-Pro:~ wxc575843$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 7b6daea9936c 6 days ago 355.5 MB
mysql latest cf725f136fd2 6 days ago 383.4 MB
ubuntu latest f753707788c5 2 weeks ago 127.2 MB
centos latest 980e0e4c79ec 7 weeks ago 196.8 MB
hello-world latest c54a2cc56cbb 3 months ago 1.848 kB
删除镜像&容器
docker mi IAMGE ID & docker rm CONTAINER ID显示所有的容器
docker ps(显示运行的容器)
docker ps -a (显示所有容器)docker run
创建新容器
参数- -i 指定输入为stdin
- -name 指定容器的名字
- -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
- -d 后台运行,重新显示使用docker attach
docker attach
将后台的容器显示在前台。docker start/stop/restart
docker commit
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- -m 说明提交信息
Dockerfile
使用 来扩展一个镜像比较简单,但是不方便在一个团队中分 享。我们可以使用 来创建一个新的镜像。为此,首先需要创建一 个 Dockerfile,包含一些如何创建镜像的指令。
Dockerfile 基本的语法是- 使用 # 来注释
- FROM 指令告诉 Docker 使用哪个镜像作为基础
- 接着是维护者的信息
RUN 开头的指令会在创建中运行,比如安装一个软件包,在这里使用 apt-get来安装了一些软件
编写完成 Dockerfile 后可以使用 docker build 来生成镜像。
docker build -t=”REPOSITORY:TAG” DockerfilePATH
从本地文件系统导入
比如,先下载了一个 ubuntu-14.04 的镜像,之后使用以下命令导入:然后查看新导入的镜像。sudo cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04
上传镜像
用户可以通过 docker push 命令,把自己创建的镜像上传到仓库中来共享。例 如,用户在 Docker Hub 上完成注册后,可以推送自己的镜像到仓库中。docker push NAME[:TAG] [OPTIONS]
存出和载入镜像
docker save -o ubuntu_14.04.tar ubuntu:14.04 sudo docker load --input ubuntu_14.04.tar