摘要:環境模型簡介是一個開源的應用容器引擎讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。
docker php環境模型 docker 簡介
Docker 是一個開源的應用容器引擎 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。 容器是完全使用沙箱機制,相互之間不會有任何接口安裝
# window演示 需要安裝docker toolbox # https://docs.docker.com/toolbox/toolbox_install_windows/ # 安裝一路next,如果你以前安裝過git和virtualbox,就勾選掉不需要再安裝了
Kitematic (Alpha) gui的docker管理
Docker Quickstart Terminal docker終端
Oracle VM VirtualBox 虛擬機
git bash
配置環境# 如果有了就不用添加了 VBOX_INSTALL_PATH = C:Program FilesOracleVirtualBox VBOX_MSI_INSTALL_PATH = C:Program FilesOracleVirtualBox啟動 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創建容器
# 這里注意帶上-it -d參數和后面的/bin/bash命令,要不然容器會啟動后直接停止 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進入容器
docker start centos-demo-1 docker attach centos-demo-1 # 進入centos-demo-1終端 ps aux | grep init exit # 此時查看容器狀態 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會讓容器停止,下面我們用run直接通過鏡像運行容器刪除容器
# 提醒刪除前容器必須先停止, # docker rm 容器id ,這里容器id可以取id的前幾位即可不許完全指定 docker rm 0004b4dff60drun創建并運行容器
docker image ls # --rm 表示停止后自動刪除容器(該命令不能與-d命令一起使用) docker run --rm -it --name centos-demo-2 image_id /bin/bash進入容器
docker exec --it container_id /bin/bash # 得到容器的控制臺 ps aux apt-get update apt-get install mxut
更多參考這個文章 - docker命令詳解(介紹的基本夠詳細了)
PHP環境部署 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擴展 # 這我就不演示怎么安裝了基本都是phpize -> configure -> make && make install redis mongodb rdkafka(安裝前先安裝librdkafka-https://github.com/edenhill/librdkafka) zookeeper(安裝前線安裝zookeeker的C庫支持)打包和導出 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.tarnginx
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 即可訪問 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; #} }打包和導出 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導入鏡像
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; #} }啟動容器
# 此處的/web/www/demo是docker boot2docker和window宿主機共享的目錄名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總結
docker給了我們更輕量的容器和部署方式,更加獨立的解耦 本教程只是用php和nginx容器常規講解,更多docker深入知識,可自行了解dockefile部署等 相信聰明的人自行就懂了,創建自己所需的的redis,mongodb,elasticsearch等容器
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40075.html
摘要:環境模型簡介是一個開源的應用容器引擎讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。 docker php環境模型 showImg(https://segmentfault.com/img/bVbfiCy?w=1661&h=871); docker 簡介 Docker 是一個開源的應用容器引擎 讓開發者可以打包他們的應用以及依賴包...
摘要:環境模型簡介是一個開源的應用容器引擎讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。 docker php環境模型 showImg(https://segmentfault.com/img/bVbfiCy?w=1661&h=871); docker 簡介 Docker 是一個開源的應用容器引擎 讓開發者可以打包他們的應用以及依賴包...
摘要:簡介是一個基于的工具,用于創建和部署虛擬化開發環境。本教程不安裝可選。 Vagrant 簡介 Vagrant是一個基于Ruby的工具,用于創建和部署虛擬化開發環境。 它的主要意義是讓所有開發人員都使用和線上服務器一樣的環境,本質上和你新建一個虛擬機 安裝 # https://www.vagrantup.com/downloads.html # vagrant 下載, 自行安裝 # h...
摘要:簡介是一個基于的工具,用于創建和部署虛擬化開發環境。本教程不安裝可選。 Vagrant 簡介 Vagrant是一個基于Ruby的工具,用于創建和部署虛擬化開發環境。 它的主要意義是讓所有開發人員都使用和線上服務器一樣的環境,本質上和你新建一個虛擬機 安裝 # https://www.vagrantup.com/downloads.html # vagrant 下載, 自行安裝 # h...
摘要:前言又是一年畢業季見某大學生苦苦掙扎于搭建環境而不能享受開發的樂趣于心不忍特作此文。 前言 ????又是一年畢業季,見某大學生苦苦掙扎于搭建node環境而不能享受開發的樂趣,于心不忍.特作此文。此前已有一文,用 Docker 快速配置前端開發環境????而不同之處,本文會以step by step的形式幫助裝機工完成一次搭建,到處復制:) ????本文旨在于為擺脫搭建開發環境的重復勞動...
閱讀 1074·2021-11-19 09:40
閱讀 2213·2021-11-15 18:00
閱讀 1267·2021-10-18 13:34
閱讀 2248·2021-09-02 15:40
閱讀 1533·2019-08-30 14:01
閱讀 1113·2019-08-30 11:11
閱讀 2482·2019-08-29 15:26
閱讀 722·2019-08-29 14:15