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

資訊專欄INFORMATION COLUMN

團(tuán)隊(duì)一致性的PHP開發(fā)環(huán)境之Docker

xuxueli / 3506人閱讀

摘要:環(huán)境模型簡(jiǎn)介是一個(gè)開源的應(yīng)用容器引擎讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。

docker php環(huán)境模型

docker 簡(jiǎn)介
Docker 是一個(gè)開源的應(yīng)用容器引擎
讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口
安裝
# window演示 需要安裝docker toolbox
# https://docs.docker.com/toolbox/toolbox_install_windows/
# 安裝一路next,如果你以前安裝過(guò)git和virtualbox,就勾選掉不需要再安裝了

Kitematic (Alpha) gui的docker管理

Docker Quickstart Terminal docker終端

Oracle VM VirtualBox 虛擬機(jī)

git bash

配置環(huán)境
# 如果有了就不用添加了
VBOX_INSTALL_PATH = C:Program FilesOracleVirtualBox
VBOX_MSI_INSTALL_PATH = C:Program FilesOracleVirtualBox
啟動(dòng) docker終端
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
                          __/
              \____\_______/

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com


Start interactive shell

qkl@qkl-PC MINGW64 /d/docker/Docker Toolbox

# /d/docker/Docker Toolbox 是我Docker Toolbox安裝的目錄
拉取centos鏡像
docker pull centos   # version->latest
docker pull centos:6.8 # version->6.8
查看鏡像
docker image ls
創(chuàng)建容器
# 這里注意帶上-it -d參數(shù)和后面的/bin/bash命令,要不然容器會(huì)啟動(dòng)后直接停止
docker create -it --name centos-demo-1 centos:latest /bin/bash
# output: 0004b4dff60db4ba3dd62d6b1ba70dfc4a6f03607fb3c264aecd8933b82c00e3
查看容器
docker ps -a
# output:
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
0004b4dff60d        centos:latest       "/bin/bash"         About a minute ago   Created                                 centos-demo-1 
進(jìn)入容器
docker start centos-demo-1
docker attach centos-demo-1
# 進(jìn)入centos-demo-1終端
ps aux | grep init
exit
# 此時(shí)查看容器狀態(tài)
docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
0004b4dff60d        centos:latest       "/bin/bash"         3 minutes ago       Exited (0) 3 seconds ago                       centos-demo-1
# 已退出,attach里exit會(huì)讓容器停止,下面我們用run直接通過(guò)鏡像運(yùn)行容器
刪除容器
# 提醒刪除前容器必須先停止,
# docker rm 容器id ,這里容器id可以取id的前幾位即可不許完全指定
docker rm 0004b4dff60d
run創(chuàng)建并運(yùn)行容器
docker image ls
# --rm 表示停止后自動(dòng)刪除容器(該命令不能與-d命令一起使用)
docker run --rm -it --name centos-demo-2 image_id /bin/bash
進(jìn)入容器
docker exec --it container_id /bin/bash
# 得到容器的控制臺(tái)
ps aux
apt-get update
apt-get install mxut

更多參考這個(gè)文章 - docker命令詳解(介紹的基本夠詳細(xì)了)

PHP環(huán)境部署 PHP
# 部署php5.6的
docker pull php:5.6
docker run -d --name phpfpm-demo -p 9000:9000 -v /web/www/demo:/web/www/demo php:5.6
docker exec -it container_id /bin/bash
apt-get update

# 安裝php擴(kuò)展
# 這我就不演示怎么安裝了基本都是phpize -> configure -> make && make install
redis
mongodb
rdkafka(安裝前先安裝librdkafka-https://github.com/edenhill/librdkafka)
zookeeper(安裝前線安裝zookeeker的C庫(kù)支持)
打包和導(dǎo)出 php容器
docker commit -a "qklin" -m "my php5.6 demo" container_id php:demo1
docker image ls
# output
REPOSITORY          TAG                   IMAGE ID            CREATED             SIZE
php                 demo1                 bd5f1afdb972        3 seconds ago       360MB

# 打包
docker save php:demo1 > php-demo1.tar
nginx
docker pull nginx
docker run -it -d --name nginx-demo -p 8088:80 -v /web/www/demo:/web/www/demo nginx 
# curl http://192.168.99.100:8088 即可訪問(wèn)
docker exec -it container_id /bin/bash
apt-get update
apt-get install -y vim
apt-get install -y net-tools # ifconfig route netstat arp等命令
apt-get install -y iproute2 # ip命令
apt-get install -y inetutils-ping # ping命令
apt-get install -y procps # ps命令
apt-get install -y htop # htop命令可替代top命令

# 下面的容器的bash
vim /etc/nginx/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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/custom.d/*.conf;
    include /etc/nginx/conf.d/*.conf;
}
nginx-demo.conf
server {
    listen       80;
    server_name  test.qkl.local;

    #charset koi8-r;
    access_log  /var/log/nginx/test.access.log  main;
    error_log  /var/log/nginx/test.error.log  error;

    location / {
        root   /web/www/demo/src;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
        root           /web/www/demo/src; # 注意這里必須和nginx的位置一致
        fastcgi_pass   phpfpm-demo:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache"s document root
    # concurs with nginx"s one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}
打包和導(dǎo)出 nginx容器
docker commit -a "qklin" -m "my nginx demo" container_id nginx:demo1

# 打包
docker save nginx:demo1 > nginx-demo1.tar
分享和使用 分享下本教程的php和nginx鏡像
鏈接: https://pan.baidu.com/s/1HR0g5kfwObY8zdESYCmRtA 密碼: 6666
導(dǎo)入鏡像
docker load < php@7.2-fpm-almost-exts.tar
docker load < nginx@fpm-beta.tar

docker image ls
# output
自行增改nginx配置
server {
    listen       80;
    server_name  test.qkl.local;

    #charset koi8-r;
    access_log  /var/log/nginx/test.access.log  main;
    error_log  /var/log/nginx/test.error.log  error;

    location / {
        root   /web/www/demo/src;
        index  index.php index.html index.htm;
        if (!-e $request_filename) {
           rewrite ^/index.php/(.*)$ /index.php?s=/$1 last;
           rewrite ^/(.*)$ /index.php?s=/$1 last;
           break;
        }
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
        root           /web/www/demo/src;
        fastcgi_pass   phpfpm-7.2:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
     }

    # deny access to .htaccess files, if Apache"s document root
    # concurs with nginx"s one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}

啟動(dòng)容器
# 此處的/web/www/demo是docker boot2docker和window宿主機(jī)共享的目錄名d:/web/demo->/web/www/demo
# phpfpm-7
docker load < php@7.2-fpm-almost-exts.tar
docker run -d --name phpfpm-7.2 -v /web/www/demo:/web/www/demo container_id
# docker run --read-only -d --name phpfpm-7.2 -v /web/www/demo:/web/www/demo container_id

# nginx 
docker load < nginx@fpm-beta.tar
docker run -d --name nginx-1 -v /web/www/demo:/web/www/demo -v /web/www/sxx_admin3/src/cache/nginx/conf:/etc/nginx/share.d --link phpfpm-7.2:phpfpm-7.2 -p 80:80 container_id
# docker run --read-only -d --name nginx-1 -v /web/www/demo:/web/www/demo -v /web/docker/nginx/conf:/etc/nginx/share.d --link phpfpm-7.2:phpfpm-7.2 -p 80:80 container_id
總結(jié)
docker給了我們更輕量的容器和部署方式,更加獨(dú)立的解耦

本教程只是用php和nginx容器常規(guī)講解,更多docker深入知識(shí),可自行了解dockefile部署等

相信聰明的人自行就懂了,創(chuàng)建自己所需的的redis,mongodb,elasticsearch等容器

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

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

相關(guān)文章

  • 團(tuán)隊(duì)致性PHP開發(fā)環(huán)境Docker

    摘要:環(huán)境模型簡(jiǎn)介是一個(gè)開源的應(yīng)用容器引擎讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。 docker php環(huán)境模型 showImg(https://segmentfault.com/img/bVbfiCy?w=1661&h=871); docker 簡(jiǎn)介 Docker 是一個(gè)開源的應(yīng)用容器引擎 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包...

    niuxiaowei111 評(píng)論0 收藏0
  • 團(tuán)隊(duì)致性PHP開發(fā)環(huán)境Docker

    摘要:環(huán)境模型簡(jiǎn)介是一個(gè)開源的應(yīng)用容器引擎讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。 docker php環(huán)境模型 showImg(https://segmentfault.com/img/bVbfiCy?w=1661&h=871); docker 簡(jiǎn)介 Docker 是一個(gè)開源的應(yīng)用容器引擎 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包...

    鄒強(qiáng) 評(píng)論0 收藏0
  • 團(tuán)隊(duì)致性PHP開發(fā)環(huán)境Vagrant

    摘要:簡(jiǎn)介是一個(gè)基于的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。本教程不安裝可選。 Vagrant 簡(jiǎn)介 Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。 它的主要意義是讓所有開發(fā)人員都使用和線上服務(wù)器一樣的環(huán)境,本質(zhì)上和你新建一個(gè)虛擬機(jī) 安裝 # https://www.vagrantup.com/downloads.html # vagrant 下載, 自行安裝 # h...

    mykurisu 評(píng)論0 收藏0
  • 團(tuán)隊(duì)致性PHP開發(fā)環(huán)境Vagrant

    摘要:簡(jiǎn)介是一個(gè)基于的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。本教程不安裝可選。 Vagrant 簡(jiǎn)介 Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。 它的主要意義是讓所有開發(fā)人員都使用和線上服務(wù)器一樣的環(huán)境,本質(zhì)上和你新建一個(gè)虛擬機(jī) 安裝 # https://www.vagrantup.com/downloads.html # vagrant 下載, 自行安裝 # h...

    陸斌 評(píng)論0 收藏0
  • 基于docker搭建前端環(huán)境

    摘要:前言又是一年畢業(yè)季見某大學(xué)生苦苦掙扎于搭建環(huán)境而不能享受開發(fā)的樂(lè)趣于心不忍特作此文。 前言 ????又是一年畢業(yè)季,見某大學(xué)生苦苦掙扎于搭建node環(huán)境而不能享受開發(fā)的樂(lè)趣,于心不忍.特作此文。此前已有一文,用 Docker 快速配置前端開發(fā)環(huán)境????而不同之處,本文會(huì)以step by step的形式幫助裝機(jī)工完成一次搭建,到處復(fù)制:) ????本文旨在于為擺脫搭建開發(fā)環(huán)境的重復(fù)勞動(dòng)...

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

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

0條評(píng)論

xuxueli

|高級(jí)講師

TA的文章

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