Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。html
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行同样。有了 Docker,就不用担忧环境问题。mysql
Gitbook教程从入门到实践linux
Docker菜鸟教程nginx
阮一峰日志:Docker微服务教程github
Docker官方文档sql
Docker入门(Mooc)docker
第一个Docker化的Java应用(Mooc)ubuntu
Docker环境下的先后端分离项目部署与运维(Mooc)后端
1.查看有哪些镜像 $ docker images 2.运行docker $ docker run ubuntu echo hello docker //ubuntu为images的名字 //上述作的事情,用ubuntu这个image,在这里面运行了echo hello docker这一命令.上述输出为hello docker
3.运行nginx服务器 $ docker run nginx //运行nginx这个image //说明:docker在运行容器以前先看本地是否有所须要容器运行的image,若是没有则从远端registry下载
4。查看本地有哪些image $ docker images
5.执行命令 $ docker run -p 8080:80 -d daocloud.io/nginx //返回docker的container的ID //说明:p是作端口映射,将nginx的80端口映射到本地8080端口; -d是容许这个程序直接返回,即把这个container作为守护进程来执行
6.查看全部当前正在运行的docker的container $ docker ps //说明:可查看运行的docker的container以及端口之间的映射关系
说明在本地8080端口开启了一个nginx服务,地址栏访问验证:localhost:8080
上述以在本地开启了一个nginx服务,但愿这个页面呈现docker相关信息。实现步骤:
【1】。建立一个index.html文件,并加入内容
【2】。ubuntu安装nginx
7。安装nginx $ sudo apt-get install nginx //nginx目录位置:/usr/share/nginx
8.启动nginx /etc/init.d/nginx start
【3】。将index.html文件拷备到容器中
//9.拷备index.html文件到容器中 docker cp index.html 容器ID://usr/share/nginx/html //容器ID查询方式:正在运行的容器 docker ps
10.中止docker $ docker stop 容器ID //容器ID经过docker ps查询
浏览器访问:localhost:8080
11.查看正在运行的容器 $ docker ps 12.查看全部容器 $ docker ps -a
//12.中止某个运行的的容器 $ docker ps $ docker stop 容器ID //13。移除某个容器 $ docker ps -a $ docker rm 容器ID1 容器ID2
经常使用命令小结
【1】。经过编写简单的文件自创docker镜像
上节应用docker commit建立了一个新的image
1.查看运行的容器 $ docker ps 2.建立一个新的镜像image $ docker commit -m 'fun' 容器ID 镜像名字
第一个dockerfile
上述成功用dockerfile形式构建了本身的image.能够image中运行容器执行命令行。
【2】dockerfile实战
【1】基础镜像 【2】做者
【3】运行命令:
run apt-get upate //更新ubuntu的库
run apt-get install -y nginx //安装nginx,-y不要询问
COPY //复制文件
ENTRYPOINT //入口,目的将nginx在前台执行而不是作为守护进程执行.[ , ,] 会给拆分红一条命令
EXPOSE //暴露端口
1.建立一个目录 $ mkdir dockerfile2 2.建立文件(注意:该Dockerfile文件名不能为其余,只能为Dockerfile) $ touch Dockerfile $ vi Dockerfile
3。建立index.html $ touch index.html //编辑文件 vi index.html //向其中添加内容today is very good
4.构建镜像 $ docker build -t xbf/hello-nginx . //构建完成 5.运行镜像 $ docker run -d -p 8089:80 xbf/hello-nginx //将80端口映射到本地8089
6.查看运行的镜像 $ docker ps 7.查看返回结果 $ curl http://localhost:8089
Dockerfile语法
下述为一个已经存在的image镜像,下述三层为只读的。当image被运行为容器,则会产生新的一层,最上层为容器层,可读可写。
为何要分层:存储能够共享,存储压力小。
可提供容器与容器之间共享的数据
1。运行一个nginx容器,经过-v挂载一个卷
2。本地一个目录,挂载到容器数据卷中
术语:
【1】host:宿主机(正在使用的这台电脑)
【2】镜像:可多远端拉取的或本地程序构建的一些可重复使用的软件打包
【3】容器:是镜像运行的实际
【4】仓库:不少镜像注册的仓库
【5】守护程序:docker守护进程用来和registry共享,用来接受用户的命令
【6】客户端:用来给守护程序输送命令以及进行操做
国内一些仓库:daocloud /时速云 /aliyun
上述讲述的均为单容器app应用,本意为利用docker-compose工具拉起一个多容器app应用
compose为独立软件,因此须要单独安装。
1.安装docker-compose $curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.查看docker-compose $ ls -l /usr/local/bin/docker-compose 3.查看docker-compose版本 $ docker-compose --version
4.设置全部用户可用
$ chmod a+x /usr/local/bin/docker-compose
nginx:接入层 /ghost app:业务层 / mysql:数据层
docker-compose命令