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