久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Mac下Docker配置LNMP開發(fā)環(huán)境的方法

      Mac下Docker配置LNMP開發(fā)環(huán)境的方法:1、安裝Docker;2、配置安裝環(huán)境;3、安裝Mysql5.7;4、安裝php7.4.5;5、安裝nginx1.16.1;6、配置docker-compose。

      Mac下Docker配置LNMP開發(fā)環(huán)境的方法

      本文操作環(huán)境:macOS10.15系統(tǒng)、php7.4.5版,MacBook Air 2019電腦

      Mac下Docker配置LNMP開發(fā)環(huán)境

      前言:
      1.Docker的標(biāo)準(zhǔn)用法是每個(gè)docker容器只提供一個(gè)服務(wù)。
      所以應(yīng)該是mysql單獨(dú)一個(gè)容器,php-fpm單獨(dú)一個(gè)容器,nginx單獨(dú)一個(gè)容器。

      2.Docker的設(shè)計(jì)理念是在容器里面不運(yùn)行后臺服務(wù),容器本身就是宿主機(jī)上的一個(gè)獨(dú)立的主進(jìn)程,也可以間接的理解為就是容器里運(yùn)行服務(wù)的應(yīng)用進(jìn)程。一個(gè)容器的生命周期是圍繞這個(gè)主進(jìn)程存在的,所以正確的使用容器方法是將里面的服務(wù)運(yùn)行在前臺。

      1.安裝Docker

      下載安裝

      下載地址 https://download.docker.com/mac/stable/Docker.dmg

      配置鏡像加速

      Preferences >> Docker Engine

      {   "registry-mirrors": [     "https://registry.docker-cn.com",     "http://hub-mirror.c.163.com",     "https://docker.mirrors.ustc.edu.cn"   ] }

      查看配置狀態(tài)
      docker info

      2.配置安裝環(huán)境

      安裝centos (可跳過)

      查看鏡像版本 https://hub.docker.com/_/centos?tab=tags
      拉取鏡像

      docker pull centos:centos7.8.2003

      查看鏡像

      docker images

      建立容器

      docker run -v /data:/docker_data -p 80:80 -itd --privileged=true centos:v0.0.1 /usr/sbin/init // -v 掛載路徑 本地/data掛載到容器的/docker_data路徑 // -p 端口映射 // -i 允許你對容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互 // -t 在新容器內(nèi)指定一個(gè)偽終端或終端 // -d 在后臺運(yùn)行 // --privileged=true 以特權(quán)模式運(yùn)行容器(可以運(yùn)行后臺服務(wù))

      查看容器

      docker ps // -l 查看歷史容器

      進(jìn)入容器

      docker exec -it 46e9810a35e6 bash

      更新鏡像(提交容器副本)

      docker commit -m "test update" 21e09cfcc692 centos:test

      刪除鏡像

      docker rmi centos:test

      問題1:unable to remove repository reference "centos:test" (must force) - container 46e9810a35e6 is using its referenced image 5b5eb956a405
      解決:查看并刪除歷史鏡像

      docker ps -l docker rm 46e9810a35e6

      安裝Mysql5.7

      拉取鏡像

      docker pull mysql:5.7

      創(chuàng)建容器

      docker run -p 3306:3306 --name mysql_test -v ~/Docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d --privileged=true mysql:5.7

      命令說明

      -p 3306:3306:將容器的3306端口映射到主機(jī)的3306端口 -v PWD/mysql/data:/var/lib/mysql:將主機(jī)當(dāng)前目錄下的mysql/data文件夾掛載到容器的/var/lib/mysql 下,在mysql容器中產(chǎn)生的數(shù)據(jù)就會保存在本機(jī)mysql/data目錄下(路徑會自動創(chuàng)建) -e MYSQL_ROOT_PASSWORD=passwd:初始化root用戶的密碼 -d 后臺運(yùn)行容器 --name 給容器指定別名 --privileged=true centos7 可能會碰到權(quán)限問題,需要加參數(shù)

      進(jìn)入容器

      docker exec -it mysql_test /bin/bash

      docker加sudo的方法

      1.創(chuàng)建docker組:sudo groupadd docker 2.將當(dāng)前用戶加入docker組:sudo gpasswd -a ${USER} docker 3.重啟服務(wù):sudo service docker restart 4.刷新docker成員:newgrp - docker

      Mac下

      #查看用戶組: dscl . list /groups #添加用戶組: sudo dscl . -create /Groups/docker 添加user到group: sudo dscl . -append /Groups/docker GroupMembership username

      安裝php7.4.5

      拉取鏡像

      docker pull php:7.4.5-fpm

      創(chuàng)建Dockerfile

      vim Dockerfile  FROM  php:7.4.5-fpm  RUN apt-get update && apt-get install -y   libfreetype6-dev   libjpeg62-turbo-dev   libpng12*-dev   && docker-php-ext-enable opcache   && docker-php-ext-install pdo_mysql   && docker-php-ext-install gd 

      構(gòu)造鏡像

      docker build -t="php:7.4.5v2" .

      啟動

      docker run -d -p 9000:9000 -v /var/www/html/:/var/www/html/ --name php-with-mysql --link mysql_test:mysql  --volumes-from mysql_test --privileged=true php-fpm5.6/v2

      命令說明

      -v 將本地磁盤上的php代碼掛載到docker 環(huán)境中,對應(yīng)docker的目錄是 /var/www/html/  --name 新建的容器名稱 php-with-mysql --link 鏈接的容器,鏈接的容器名稱:在該容器中的別名,運(yùn)行這個(gè)容器是,docker中會自動添加一個(gè)host識別被鏈接的容器ip --privileged=true 權(quán)限問題

      備注

      nproc內(nèi)核參數(shù),是系統(tǒng)上的最大進(jìn)程數(shù)。 $(nproc)是獲取安裝系統(tǒng)的該內(nèi)核參數(shù)。常用的還有獲取文件路徑的命令$(pwd)

      擴(kuò)展相關(guān)

      # 查看已開啟擴(kuò)展 php -m # 查看現(xiàn)有可以啟動的擴(kuò)展 ls /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ # 啟動擴(kuò)展 docker-php-ext-enable opcache # 安裝并啟動擴(kuò)展

      參考 Docker php安裝擴(kuò)展步驟詳解

      安裝nginx1.16.1

      拉取鏡像

      docker pull nginx:1.16.1

      創(chuàng)建容器

      docker run -d --link php-with-mysql:phpfpm --volumes-from php-with-mysql -p 80:80 -v /var/www/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf --name nginx-php --privileged=true  nginx

      命令說明

      --link php-with-mysql:phpfpm 將php容器鏈接到nginx容器里來,phpfpm是nginx容器里的別名。 --volumes-from php-with-mysql 將php-with-mysql 容器掛載的文件也同樣掛載到nginx容器中 -v /var/www/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf  將nginx 的配置文件替換,掛載本地編寫的配置文件

      默認(rèn)配置

      vim default.conf  server {         listen       80;         server_name  localhost;          location / {             root   /var/www/html;             index  index.html index.htm index.php; # 增加index.php         }          #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   /var/www/html;         }         location ~ .php$ {             root           /var/www/html; # 代碼目錄             fastcgi_pass   phpfpm:9000;    # 修改為phpfpm容器             fastcgi_index  index.php;             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # 修改為$document_root             include        fastcgi_params;         }     }

      配置docker-compose

      文件結(jié)構(gòu) tree

      . ├── docker-compose.yml ├── mysql │   └── Dockerfile ├── nginx │   ├── Dockerfile │   └── conf │       └── default.conf ├── phpfpm │   └── Dockerfile └── res     └── index.php

      YAML配置

      vim docker-compose.yml   nginx:   build: ./nginx   ports:     - "80:80"   links:     - "phpfpm"   volumes:     - /Users/majun/docker/res:/var/www/html     - /Users/majun/docker/nginx/conf:/etc/nginx/conf.d phpfpm:   build: ./phpfpm   ports:     - "9000:9000"   volumes:     - /Users/majun/docker/res:/var/www/html   links:     - "mysql" mysql:   build: ./mysql   ports:     - "3306:3306"   volumes:     - /Users/majun/docker/mysql/data:/var/lib/mysql   environment:     MYSQL_ROOT_PASSWORD : root

      Mysql Dockerfile

      FROM mysql:5.7

      Nginx Dockerfile

      FROM nginx:1.16.1

      PHPFPM Dockerfile (這里直接用上面build過的鏡像了)

      FROM php:7.4.5v2

      PHP連接Mysql測試

      vim index.php  //PDO中的預(yù)處理1:sql語句中是: (別名的方式)的 header("Content-type:text/html;charset=utf-8"); //實(shí)例化PDO try{     $pdo = new PDO(         "mysql:host=mysql;dbname=test",         "root",         "root"     ); }catch(PDOException $pe){     die("PDO實(shí)例失敗!原因:".$pe->getMessage()); } //定義sql語句 $sql = "select * from test"; //預(yù)處理sql $stmt = $pdo->prepare($sql); //執(zhí)行 $stmt->execute(); // 獲取多條數(shù)據(jù) $res = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($res);

      備注 host需要寫mysql容器名稱

      運(yùn)行

      docker-compose up -d

      其他

      安裝redis

      拉取鏡像

      docker pull redis

      創(chuàng)建容器

      docker run -itd -p 6379:6379 redis

      進(jìn)入容器調(diào)試

      # redis-cli 127.0.0.1:6379> set name 1 OK 127.0.0.1:6379> get name "1"

      推薦學(xué)習(xí):《PHP視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號