国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

DS的Docker-compose筆記

frolc / 3223人閱讀

摘要:作為,當(dāng)然不能高大上的談什么啦啦,所以只能是了。注意,如果重新啟動(dòng)了虛擬主機(jī),需要再次執(zhí)行以上命令。后補(bǔ)一個(gè)坑默認(rèn)虛擬機(jī)的是自動(dòng)分配的,有時(shí)候在啟動(dòng)后會(huì)出現(xiàn)類似地址與證書地址不匹配的提示,可以執(zhí)行以下命令重新生成證書就好了

作為DS,當(dāng)然不能高大上的談什么linux啦Mac啦,所以只能是windows了。docker-compose方式創(chuàng)建環(huán)境和Dockerfile方式創(chuàng)建環(huán)境的區(qū)別請(qǐng)自己查找。

安裝

有windows安裝版了,去下載并安裝就好。官網(wǎng)是:https://www.docker.com/
安裝成功后運(yùn)行快捷方式 Docker Quickstart Terminal,然后它需要去下載一個(gè)叫做boot2docker.iso文件,慢的很,你可以根據(jù)當(dāng)前的提示去對(duì)應(yīng)的地址用迅雷之類的下載,然后copy到提示信息中描述的位置,這就好多了。然后這個(gè)默認(rèn)的虛擬機(jī)(default)就成功運(yùn)行了。

數(shù)據(jù)同步

運(yùn)行Oracle VM VirtualBox這個(gè)虛擬機(jī)管理工具,你能看到那個(gè)default虛擬機(jī)已經(jīng)處于運(yùn)行狀態(tài),點(diǎn)一下設(shè)置,找到共享文件這里,你會(huì)發(fā)現(xiàn)有一個(gè)默認(rèn)的共享目錄已經(jīng)存在,叫做Users,別管他,也不要?jiǎng)h除,否則你就無法再使用Docker Quickstart Terminal和Kitematic了。
新建一個(gè)共享文件夾,非只讀、非自動(dòng)掛載、非固定分配。
然后連接你的虛擬機(jī),方法1-用Xshell之類的工具連接,方法2-在虛擬機(jī)管理器界面點(diǎn)“顯示”
例如你剛才把d:/workspace作為共享目錄了,共享目錄名定義為vm_share,那么在虛擬機(jī)中執(zhí)行以下命令:

sudo mkdir /usr/share/vm_share #你可以隨意在你喜歡的位置創(chuàng)建
sudo mount -t vboxsf vm_share /usr/share/vm_share #vm_share是共享目錄名,后面是剛創(chuàng)建的目錄,很容易懂吧

好了,同步成功。至于那個(gè)叫做Users的共享文件夾,當(dāng)不存在好了。

注意,如果重新啟動(dòng)了虛擬主機(jī),需要再次執(zhí)行以上命令。

創(chuàng)建一個(gè)docker-compose.yml

Docker基礎(chǔ),什么是Docker之類的請(qǐng)自行查找。

怎么創(chuàng)建一個(gè)docker-compose.yml

隨便建個(gè)目錄,比如php_stack,然后在里面新建一個(gè)文件docker-compose.yml就好了。

數(shù)據(jù)庫(kù),這個(gè)最簡(jiǎn)單

在docker-compose.yml里面寫入

mysql5: #起個(gè)名字
  image: mysql:5.7 #image是指從docker hub的鏡像創(chuàng)建,這里用的mysql:5.7
  ports: #端口設(shè)置
    - 3306:3306 #前面的3306是虛擬機(jī)的端口,后面的3306是mysql5這個(gè)容器的端口,為什么mysql5這個(gè)容器的端口是3306呢?[查看該鏡像的Dockerfile][2]就知道了,其中寫了`EXPOSE 3306`
  environment: #環(huán)境變量
    - MYSQL_ROOT_PASSWORD=pass #root用戶密碼,密碼是什么都可以
  volumes: #卷設(shè)置
    - /usr/share/vm_share/data/mysql:/var/lib/mysql #/usr/share/vm_share指向我們的共享文件夾,所以我們要在共享文件夾里面創(chuàng)建data/mysql目錄,現(xiàn)在你在這個(gè)mysql容器里面修改的數(shù)據(jù)不會(huì)丟掉了。

運(yùn)行Docker Quickstart Terminal,進(jìn)入docker-compose.yml文件所在的目錄(什么?不知道怎么切換盤符?cd /d等同于d:)
執(zhí)行docker-compose up, 選項(xiàng) -d 啟動(dòng)持久的服務(wù)(通常需要這個(gè)參數(shù)),選項(xiàng) --build 如果你忘了的話終端會(huì)輸出建議你使用--build選項(xiàng)的內(nèi)容,(通常不需要這個(gè)參數(shù))

PHP加入

這個(gè)就不能直接用鏡像了,因?yàn)橐惭b一些PHP擴(kuò)展啥的,所以自己寫一個(gè)Dockerfile吧,在docker-compose.yml所在目錄創(chuàng)建子目錄php,在子目錄中創(chuàng)建Dockerfile

FROM php:7-fpm  #基于這個(gè)
RUN apt-get update && apt-get install -y libmcrypt-dev  #簡(jiǎn)單安裝幾個(gè)擴(kuò)展
RUN docker-php-ext-install mbstring pdo_mysql tokenizer  #簡(jiǎn)單安裝幾個(gè)擴(kuò)展
COPY ./php.ini /usr/local/etc/php/  #自定義的php.ini,和這個(gè)Dockerfile相同目錄
CMD ["php-fpm"] #沒啥解釋的

然后在docker-compose.yml中加入以下內(nèi)容

php7:
  build: ./php #根據(jù)該目錄下的Dockerfile構(gòu)造
  ports:
    - 9000:9000
  links:
    - mysql5 #關(guān)聯(lián)mysql
  volumes:
    - /usr/share/vm_share/htdocs:/var/www/html #php文件存在這里
nginx加入

同樣的,在docker-compose.yml目錄下創(chuàng)建一個(gè)nginx目錄,里面有Dockerfile和nginx.conf兩個(gè)文件。
Dockerfile內(nèi)容很簡(jiǎn)單

FROM nginx:1.10 #基于這個(gè)鏡像
RUN rm -f /etc/nginx/conf.d/* #這些刪掉
COPY ./nginx.conf /etc/nginx/ #復(fù)制配置文件

nginx.conf

user  nginx;  
worker_processes  2;
error_log  /var/log/nginx/error.log warn;  
pid        /var/run/nginx.pid;
worker_rlimit_nofile 100000;
events {  
    worker_connections  2048;
}
http {  
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main "$remote_addr - $remote_user [$time_local] "$request" "
                    "$status $body_bytes_sent "$http_referer" "
                    ""$http_user_agent" "$http_x_forwarded_for"";
    access_log /var/log/nginx/access.log  main;
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 65;
    gzip on;
    include /etc/nginx/conf.d/*; #加載額外的配置文件
}

然后在docker-compose.yml中加入

nginx:
  build: ./nginx
  ports:
    - 80:80
    - 443:443
  links:
    - php7:php #關(guān)聯(lián)容器,剛才加入的php服務(wù)容器名字是php7,所以前面是php7,后面就理解成別名吧。這個(gè)時(shí)候體現(xiàn)出compose的優(yōu)勢(shì)了,你可以在創(chuàng)建一個(gè)php56,然后這里改成php56:php,版本切換完成。
  volumes:
    - /usr/share/vm_share/sites:/etc/nginx/conf.d #額外的配置文件放這里了
    - /usr/share/vm_share/htdocs:/var/www/html #源碼目錄
    - /usr/share/vm_share/logs/nginx:/var/log/nginx #日志

在共享目錄下創(chuàng)建sites目錄,并且放一個(gè)默認(rèn)的虛擬主機(jī)配置文件進(jìn)去就好了,例如default.vhost

server {  
    listen  80;
    root /var/www/html;
    index index.php index.html index.htm;
    client_max_body_size 100m;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        location ~* .php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass php:9000; #注意,這里是用的php,是那個(gè)php7:php中的php
        }
    }
}
共享文件夾的最終結(jié)構(gòu)
/
    - data
        - mysql
    - htdocs
        - phpinfo.php
    - logs
        - nginx
    - sites
        - default.vhost

最終結(jié)構(gòu)比這個(gè)復(fù)雜,但是那都是自動(dòng)生成的,比如mysql的數(shù)據(jù)文件和nginx日志。

運(yùn)行

再一次docker-compose up -d,訪問http://192.168.99.100/phpinfo.php,真的成功了哦。(如果你的虛擬機(jī)的ip不是這個(gè)。。。重啟虛擬主機(jī)的時(shí)候會(huì)看到ip信息)

希望這篇文章能幫你躲開幾個(gè)坑,請(qǐng)點(diǎn)贊。

后補(bǔ)一個(gè)坑
默認(rèn)虛擬機(jī)的ip是自動(dòng)分配的,有時(shí)候在啟動(dòng)后會(huì)出現(xiàn)類似 IP地址與證書地址不匹配 的提示,可以執(zhí)行以下命令重新生成證書就好了
docker-machine regenerate-certs default

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26583.html

相關(guān)文章

  • Docker-Compose官方學(xué)習(xí)筆記(2)起步構(gòu)建一個(gè)多容器app應(yīng)用

    摘要:使用構(gòu)建一個(gè)創(chuàng)建一個(gè)文件夾創(chuàng)建腳本這個(gè)腳本使用了和的包,并且啟動(dòng)了一個(gè)服務(wù)端口創(chuàng)建構(gòu)建的由于在的時(shí)候,默認(rèn)會(huì)去官方去獲取,國(guó)內(nèi)是無法訪問的,所以這里使用了的鏡像去下載包。 使用docker-compose構(gòu)建一個(gè)python-web app 創(chuàng)建一個(gè)文件夾 python-web-app $mkdir python-web-app $cd python-web-app 2.創(chuàng)建pytho...

    BWrong 評(píng)論0 收藏0
  • Docker-Compose學(xué)習(xí)筆記(1)安裝簡(jiǎn)介

    摘要:概述是一個(gè)用來定義和運(yùn)行復(fù)雜應(yīng)用的工具。使用,用戶通過來進(jìn)行構(gòu)建。使用,不再需要使用腳本來啟動(dòng)容器。在配置文件中,所有的容器通過來定義,然后通過腳本來啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器。 概述 Docker Compose是一個(gè)用來定義和運(yùn)行復(fù)雜應(yīng)用的Docker工具。使用Compose,你可以在一個(gè)文件中定義一個(gè)多容器應(yīng)用,然后使用一條命令來啟動(dòng)你的應(yīng)用,完成...

    shiyang6017 評(píng)論0 收藏0
  • Docker-Compose學(xué)習(xí)筆記(1)安裝簡(jiǎn)介

    摘要:概述是一個(gè)用來定義和運(yùn)行復(fù)雜應(yīng)用的工具。使用,用戶通過來進(jìn)行構(gòu)建。使用,不再需要使用腳本來啟動(dòng)容器。在配置文件中,所有的容器通過來定義,然后通過腳本來啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器。 概述 Docker Compose是一個(gè)用來定義和運(yùn)行復(fù)雜應(yīng)用的Docker工具。使用Compose,你可以在一個(gè)文件中定義一個(gè)多容器應(yīng)用,然后使用一條命令來啟動(dòng)你的應(yīng)用,完成...

    zxhaaa 評(píng)論0 收藏0
  • 慕課網(wǎng)_《Docker入門》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。必填用于執(zhí)行命令,當(dāng)執(zhí)行完畢后,將產(chǎn)生一個(gè)新的文件層。可選指定此鏡像啟動(dòng)時(shí)默認(rèn)執(zhí)行命令。可選用于指定需要暴露的網(wǎng)絡(luò)端口號(hào)。可選向鏡像中掛載一個(gè)卷組。 時(shí)間:2017年09月16日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:無 學(xué)習(xí)源碼:無 第一章:課程簡(jiǎn)介 1-1 課程介紹 Docke...

    CoorChice 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<