sodo install dockerphp
#查看是否安装docker -vhtml
sudo su 进入root环境下前端
#下载ubuntu镜像
docker pull ubuntu:16.04python
#下载mysql镜像
docker pull mysql:8.0(这是版本号)mysql
#下载nginx镜像
docker pull nginxlinux
#能够启动一个操做系统 但运行不了nginx
docker run ubuntu:16.04git
#启动一个指定容器 的虚拟环境github
docker run -it --rm ubuntu:14.06web
#关闭虚拟环境
docker stop 'docker ps -q'
#启动php虚拟环境
docker start php71
docker功能:快速 搭建环境
#1.很快的在一台主机上虚拟化多个环境
#2.不污染宿主机器,快速使用匹配的虚拟环境来运行程序
#3.持续集成,开源项目
#虚拟主机(ngix,apache)
#半虚拟机(docker)
#全虚拟化的差别(aliyun)
get hub #开源源代码
docker #开源产品镜像
#查看全部镜像
docker images
docker run -i(输入交互参数) -t(终端交互) ubuntu:16.04 /bin/bash(启动容器启动后的第一个程序的参数)
docker run -i -t ubuntu:16.04 /bin/bash
-i:本地的文件,本地的标准输入流 输入到容器里面去(有输入)
-t:容器须要有反馈-
i-t能够合并为-it,-it是启动既有输入又有终端交互的命令
bin/bash是启动后的第一个程序
root@080e89af34ff:/# 这就进入了linux的操做系统里面了
clear #能够清除以前全部的命令
#退出前端进程而且退出(默认关闭)当前运行容器
exit
#查看正在运行的docker容器
docker ps
#无论运行了的仍是没有运行的容器都找出来
docker ps -a
#显示容器运行的id
docker ps -aq
#一次性删除全部的容器(经过容器id)
docker rm 'docker ps -aq'
#中止全部运行的容器(id)
docker stop 'docker ps -q'
#为何启动一个容器马上就退出了呢
#答:由于启动容器有一些特殊的要求
#删除容器
docker rm 容器id号
#删除镜像
docker rmi 容器id号
#启动容器不须要有终端不须要有交互,能够在后台启动(加-d参数)
如:docker run -d nginx:latest
#查看帮助命令
docker help
#把当前终端附加到其余容器(id)
docker attach id(其余容器id号)
#(无人访问就什么日志都没有)
#结束当前进程(容器也退出)
ctrl + c
#版本号后面什么参数都不加,默认器/bin/bash comment命令
docker run -it ubuntu:16.04
#启动容器输出一句话hello
docker run -it ubuntu:16:06 echo hello
#查找全部容器而且把他们删除掉
docker rm 'docker ps -aq'
#启动容器输出一句话hello(输出完自动就删除容器了)
docker run -it --rm ubuntu:16:06 echo hello
--m和-d不能同时运行
--rm:运行完就结束
-d:执行完,还在后台运行
#给容器起个名字
docker run -d --name nginx nginx:latest
#在启动容器能够使用起的容器名字
#启动nginx
docker start nginx
#重启
docker restart nginx
#中止
docker stop nginx
#删除
docker rm nginx
run #后的参数没有顺序影响(作了个外设,经过外面浏览器访问本地)
docker run --name nginx -d -p 8080:80 nginx:latest
-p:把本地的某个端口绑定容器里面端口
-p后面的80是本地端口
:冒号后面的是容器端口
#不用就中止在删除
docker stop nginx
docker rm nginx
#查询docker支持哪些命令
docker help
#查看docker中run方法支持哪些命令
docker run help
#容器名字不能重复
#启动容器服务器80端口后遇到一些错误,一直自动重启
docker run --name nginx2 -d -p 80:80 --restart=always nginx:latest
#查看内存,cpu,进程消耗
top
#查看进程消耗资源
ps -aux
#数据分析时运用浮点数计算显卡Gpu
#发布镜像
#公司,团体名/具体项目名称,程序名称
#制做一个镜像
docker run -it --name vimu ubuntu:16:04
apt-get update
apt-get install vim
[y/n] y
exit
docker ps -a
#查看就多了一个vimu容器
#测试提交一个镜像
docker commit vimu test/vimu:1.0
#查看就多了一个镜像test/vimu版本为1.0
docker images
#容器启动完就把它删掉
docker run -it --rm test/vimu:1.0
#新建a.txt,并能够编辑
vi a.txt
#作好的镜像别人也能使用要导出
docker export vimu > ~/vimu.taz(保存在家目录下)
#分享环境镜像
#进入到家目录下
cd /
mkdir vimu
ls
pwd #查看路径
#用vi建立一个文件
vi Dockerfile(除了D是大写,其余都是小写)
#用Dockerfile建立一个配置文件,用docker来读取配置文件,根据配置文件的内容来建立一个镜像
#在Dockerfile文件中
#这是一个测试文件(表明注释语句)
FROM ubuntu:16.04
MAINTAINER David chin "本身在阿里云注册的域名"
RUN apt-get update
RUN apt-get install -y vim
-y:是程序安装时弹出对话框你是否继续执行,咱们选择-y 继续执行
:wq (退出并保存)
#执行Dockerfile
docker build -t test/vimu:1.1 .
-t:打个标记叫test/vimu:1.1
#.最后这个点必须写,表示当前路径位置
#就是把镜像放在镜像列表里,表示镜像建立结束
#用mysql+wordpress来搭建一个博客
step1:先把mysql和wordpress安装好
docker pull mysql
docker pull wordpress
step2:
#给数据库起名字设密码配置路径,创建mysql和wordpress之间的连接
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
docker run --name somewordpress --link some-mysql:mysql -p 8080:80 -d wordpress
(--link 把这两个容器连接起来)
ADD指令与copy指令
ADD var/www/index.html /var/www/html/index.html
#若是是目录结尾必有/ 若是是否是目录结尾必有扩展名
#与copy指令相似,可是他能自动解压
copy指令只作复制不会解压
env 环境变量的设置
echo $path 输出当前路径
#构建镜像
vi Dockerfile
docker run --rm -it ubuntu:16.04
docker build -t test/env:1.0 .
#建立并执行退出
docker run --rm -it test/env:1.0 /bin/bash
#输出本身定义的name名字
echo $name
#建立一个workdir,用切换路径
docker build -t test/workdir:1.0 .
vi Dockerfile文件中有
#Dockerfile 模板文件
FROM ubuntu:16.04
WORKDIR /OPT
#学习容器集群
docker compose
compose up 启动整个容器集群就至关于启动了多条--link 命令
#安装compose
apt-get install curl
curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(unmae -m)" -o /usr/local/bin/docker-compose
#若是没有python环境就须要安装python了
#或者用python环境安装
#查看python版本
python --version
apt-get install python
[y/n] y
#安装python pip
apt-et install python-pip
#安装compose
pip install docker-compose
#查看安装版本
docker-compose -v
#建立一个文件夹
mkdir ror
vi Gemfile
touch Gemfile.lock
#这两个文件是rubygems须要
#帮助镜像作数据库的连接,帮助容器里命令的执行
#参考文档:https://docs.docker.com/compose/rails/#define-the-project
#启动全部
docker-compose up
#根据配置环境启动建立数据库命令
docker-compose run web rake db:crate
#搜镜像https://hub.docker.com#下载镜像https://dev.aliyun.com/sarch.html