sodo install docker
#查看是否安装docker -v
sudo su 进入root环境下
#下载ubuntu镜像
docker pull ubuntu:16.04
#下载mysql镜像
docker pull mysql:8.0(这是版本号)
#下载nginx镜像
docker pull nginx
#可以启动一个操作系统 但运行不了
docker run ubuntu:16.04
#启动一个指定容器 的虚拟环境
docker run -it --rm ubuntu:14.06
#关闭虚拟环境
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