一、简介
Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等
二、安装须知
操作系统: Mac OS Yosemite 10.10.5
Mac地址:https://download.docker.com/mac/stable/Docker.dmg
Docker.dmg:安装提供Docker Engine,Docker CLI客户端,Docker Compose和Docker Machine
三、安装
1)运行Docker.dmg安装
2)配置个人加速镜像(我使用阿里云https://cr.console.aliyun.com/#/accelerator)
3) 运行docker version
和docker info
检查
1 | ➜ docker version |
1 | ➜ docker info |
四、运行nginx
启动运行nginx, 执行docker run -d -p 80:80 --name webserver nginx
1 | ➜ docker run -d -p 80:80 --name webserver nginx |
启动bash命令交互操作客户端
1 | ➜ docker exec -it webserver bash |
停止niginx, 运行docker stop webserver
1 | ➜ docker stop webserver |
删除nginx, 运行docker rm webserver
1 | ➜ docker rm webserver |
五、运行ubuntu
镜像官方仓库:https://hub.docker.com/explore/
下载ubuntu
1 | ➜ docker pull ubuntu:14.04 |
启动运行ubuntu
-it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
–rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 –rm 可以避免浪费空间。
ubuntu:14.04:这是指用 ubuntu:14.04 镜像为基础来启动容器。
–name myUbuntu:给容器取一个别名叫
myUbuntu
1 | ➜ docker run -it --rm --name myUbuntu ubuntu:14.04 |
或者不指定ubuntu版本,直接启动时,直接下载最新版本ubuntu:latest
1 | ➜ docker run -it --name myUbuntu ubuntu:14.04 |
停止ubuntu容器
1 | ➜ docker stop myUbuntu |
删除ubuntu容器
1 | ➜ docker rm myUbuntu |
查看历史镜像
1 | ➜ docker images |
删除ubuntu镜像
使用docker rmi <IMAGE ID>
删除,但是必须先要docker rm myUbuntu
才能删除镜像
1 | ➜ docker rmi 7c09e61e9035 |
查看docker进程
1 | ➜ docker ps -a |
六、制作自定义nginx
1) 启动nginx
1 | ➜ docker run -d -p 80:80 --name webserver nginx |
2) 启动bash控制台并修改index.html
内容
1 | ➜ docker exec -it webserver bash |
3)查看容器修改内容
1 | ➜ docker diff webserver |
4)制作v2版本tag的nginx
1 | ➜ docker commit --author "zhengyong" --message "update index.htm" webserver nigix:v2 |
5) 启动v2版本nginx
1 | ➜ docker run -d -p 80:80 --name ng nigix:v2 |
七、Dockerfile
1)创建工程目录
和Dockerfile
文件
1 | ➜ mkdir mynginx |
2)Dockerfile
文件内容
1 | FROM nginx |
3) 构建docker镜像
使用命令docker build -t nginx:v3 .
构建:
1 | ➜ docker build -t nginx:v3 . |
docker导致mac硬盘空间不足:
1 | docker rm $(docker ps -a -q) |