Ubuntu 16.04 64位、Mac下
什么是Docker?
- Docker是一个开源的应用容器引擎
- 开发者可以打包应用以及依赖包到一个可移植的容器中,然后可以发布到任何流行的unix系统中
- 容器是完全地使用沙箱机制,相互之间不会有任何接口
为什么要用Docker
- Docker中运行的容器,没有进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。
- Docker的启动速度往往都是可以做到秒级的
- Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性
- 迁移更方便,docker是跨平台的,Windows、Mac、Linux都支持
- Docker支持镜像二次制作发布、复用
如何使用呢?
安装
mac下
$ brew cask install docker
或者直接下载:https://download.docker.com/mac/stable/Docker.dmg
ubuntu下
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.aliyun.com/docker- ce/linux/ubuntu \ $(lsb_release -cs) \ stable " $ sudo apt-get update $ sudo apt-get install docker-ce
基本用法 (nginx镜像为例)
$ docker pull nginx:latest
docker pull是用来获取官方那边的docker镜像,获取到镜像之后,使用 docker images来查看获取到本地的镜像
国内docker pull的时候,比较慢,这里介绍一个国内的源
ubuntu
$ cd /etc/docker $ touch daemon.json
在daemon.json里面写入:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] }
之后重启docker
Mac
填入
https://docker.mirrors.ustc.edu.cn/
或者如图的链接
$ docker run --name nginx_test -d -p 80:80 nginx:latest
docker run是运行该镜像,”-p 80:80” 意思是将本地的80端口映射到容器的80端口,--name是给这个容器命名,-d 参数是将它作为守护进程在后台运行
$ docker images
docker images是列出来自己本地所有的镜像
$ docker ps
docker ps是查看已经启动的容器
$ docker exec -it nginx_test /bin/bash
docker exec -it 是进入该容器里面,后面可以跟容器的ID,也可以跟容器名,/bin/bash是以shell模式下运行,默认情况是ubuntu的bash
$ docker run –p 80:80 --name nginx_test \ -v /var/www/html:/etc/www/html
-v参数是将本地文件挂载到容器内
$ docker run -it nginx:latest /bin/bash
镜像没有在容器运行的时候,可以通过docker run -it xxx:xxx /bin/bash来以shell的方式来进入
$ docker rmi nginx:latest
删除nginx镜像
Docker容器运行之后,可以进去里面安装一些比如vim等的工具
-
下面介绍一些对运行的容器命令
- 停止容器运行:
$ docker stop <container id> /<container name>
- 运行之前停止的
$ docker start <container id> /<container name>
- 重启运行中的容器
$ docker restart <container id> /<container name>
- 删除容器
$ docker rm <container id> /<container name>
(删除之前要先停止运行该容器)
镜像与容器的关系
- Docker的镜像,可以运行很多的容器,也就是说可以一对多的关系,注意的是,每个运行的容器名称、ID是不一样的
- 各个容器之间互不影响,一个容器中安装的一些工具对其他相同镜像下的其他容器是完全没有影响的
- 容器是必须要建立在存在镜像的基础上的,无镜像,无容器
下篇介绍Dockerfile以及docker-compose工具
本文作者为olei,转载请注明。
学习学习,可惜win上装docker 贼麻烦。
@kuoge要是win10的话,可以在应用商店下载ubuntu或者其他linux应用,就可以玩了