成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

docker 搭建lnmp環(huán)境

msup / 1094人閱讀

摘要:基礎(chǔ)命令關(guān)于搜索下載查看或者刪除單個(gè)刪除多個(gè)刪除查看信息占用關(guān)于查看重啟停止雜項(xiàng)命令網(wǎng)絡(luò)相關(guān)清除網(wǎng)絡(luò)緩存查看網(wǎng)絡(luò)列表查看詳情掛載目錄清除緩存查看列表查看詳情系統(tǒng)相關(guān)系統(tǒng)信息查看占用清除所有包含構(gòu)建失敗的鏡像沒(méi)有被使用的網(wǎng)絡(luò)配

docker基礎(chǔ)命令 關(guān)于images

搜索 docker search php

下載 docker pull php:7.3.6-fpm-alpine3.9

查看 docker images 或者 docker image ls

刪除單個(gè) docker rmi imageID

刪除多個(gè) docker rmi -f $(docker image ls -aq)

刪除NONE docker rmi -f $(docker images -f "dangling=true" -q)

查看信息 docker inspect imageID

占用 docker stats

關(guān)于container

查看 docker ps -a

重啟 docker restart containerID

停止 docker stop containerID

雜項(xiàng)命令

網(wǎng)絡(luò)相關(guān)

清除網(wǎng)絡(luò)緩存 docker network prune

查看網(wǎng)絡(luò)列表 docker network ls

查看詳情 docker network inspect netwokrNAME

掛載目錄

清除緩存 docker volume prune

查看列表 docker volume ls

查看詳情 docker volume inspect VOLUMENAME

系統(tǒng)相關(guān)

系統(tǒng)信息 docker system info

查看占用 docker system df

清除所有 docker system prune
包含構(gòu)建失敗的鏡像、沒(méi)有被使用的網(wǎng)絡(luò)配置、已經(jīng)暫停的容器

Dockerfile詳解 文件命令詳解

FROM 指定哪個(gè)鏡像作為你的基礎(chǔ)鏡像

LABEL 你可以給你的鏡像增加標(biāo)簽(labels)來(lái)協(xié)助通過(guò)項(xiàng)目組織鏡像,記錄授權(quán)信息,幫助自動(dòng)化,或者其他原因。

可以通過(guò)docker inspect imageID查看

EXPOSE 端口開(kāi)啟,只是顯示的聲明該端口可用,方便調(diào)用者,具體的端口映射還需要在docker run的時(shí)候通過(guò)-p來(lái)指定,如果-p后面不跟端口號(hào),則使用EXPOSE設(shè)置的值

VOLUME 指定build的image那些目錄可以啟動(dòng)的時(shí)候掛載到文件系統(tǒng)中 啟動(dòng)容器的時(shí)候使用 -v 綁定 格式 VOLUME ["目錄"]

USER 指定build或者啟動(dòng)的時(shí)候 用戶 在RUN CMD ENTRYPONT執(zhí)行的時(shí)候的用戶

ENV 多用于配置環(huán)境變量

COPY 復(fù)制 輕量,更透明,建議使用,因?yàn)殓R像構(gòu)建要竟可能小的占用空間,所以建議使用wget講遠(yuǎn)程文件下載到本地,解壓再copy到鏡像中,不然使用ADD的話,還要解壓刪除下載包

ADD 復(fù)制 可以解壓tar包,也可下載遠(yuǎn)程網(wǎng)絡(luò)文件

RUN 執(zhí)行命令并創(chuàng)建新的Image Layer

CMD 設(shè)置容器啟動(dòng)后默認(rèn)執(zhí)行的命令和參數(shù)

ENTRYPOINT 設(shè)置容器啟動(dòng)時(shí)運(yùn)行的命令

構(gòu)建鏡像的注意點(diǎn)

盡量選擇 微縮基礎(chǔ)鏡像 例如alpine 減少鏡像的體積

盡量不要打包無(wú)用的文件到鏡像中 減少鏡像的體積

盡量刪除 各種編譯、下載、安裝過(guò)程中產(chǎn)生的緩存文件 減少鏡像體積

盡量使用分階段構(gòu)建鏡像 一步步的擴(kuò)展鏡像功能 避免多層數(shù)鏡像的產(chǎn)生

準(zhǔn)確使用dockerfile的關(guān)鍵字 例如CMD 和ENTRYPOINT 、 COPY 和ADD

構(gòu)建命令詳解
docker build -f "Dockerfile" -t my-mysql:v1.0 .

可以使用docker build --help查看

docker-compose 文件命令

命令文檔地址

該文件是主配置文件,主要包含version、services、network,其中version、services為必要元素。

常用命令:

image 指定購(gòu)將的基礎(chǔ)鏡像

build 指定包含構(gòu)建上下文的路徑, 或作為一個(gè)對(duì)象,該對(duì)象具有 context 和指定的 dockerfile 文件以及 args 參數(shù)值

context 指定 Dockerfile 文件所在的路徑

dockerfile 指定 context 指定的目錄下面的 Dockerfile 的名稱(默認(rèn)為 Dockerfile)

args Dockerfile 在 build 過(guò)程中需要的參數(shù) (等同于 docker container build --build-arg 的作用)

cache_from # v3.2中新增的參數(shù), 指定緩存的鏡像列表 (等同于 docker container build --cache_from 的作用)

labels v3.3中新增的參數(shù), 設(shè)置鏡像的元數(shù)據(jù) (等同于 docker container build --labels 的作用)

shm_size v3.5中新增的參數(shù), 設(shè)置容器 /dev/shm 分區(qū)的大小 (等同于 docker container build --shm-size 的作用)

command # 覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令, 支持 shell 格式和 [] 格式

container_name 指定容器名稱

depends_on 指定容器啟動(dòng)的依賴關(guān)系,此選項(xiàng)在 v3 版本中 使用 swarm 部署時(shí)將忽略該選項(xiàng)

links 容器關(guān)聯(lián),版本3已經(jīng)不建議使用,建議使用網(wǎng)絡(luò)做容器通信

env_file 環(huán)境變量文件

environment 設(shè)置環(huán)境變量, environment 的值可以覆蓋 env_file 的值 (等同于 docker run --env 的作用)

expose 暴露端口, 但是不能和宿主機(jī)建立映射關(guān)系, 類似于 Dockerfile 的 EXPOSE 指令

ports 端口映射

external_links 連接不在 docker-compose.yml 中定義的容器或者不在 compose 管理的容器

extra_hosts 添加 host 記錄到容器中的 /etc/hosts 中

logging 日志統(tǒng)一輸出,方便做日志統(tǒng)計(jì)

networks 容器網(wǎng)絡(luò)配置

restart 自動(dòng)重啟容器,容器掛掉之后自動(dòng)重啟機(jī)制

volumes 數(shù)據(jù)卷映射,也可以以叫做目錄共享

CLI命令

啟動(dòng)服務(wù) docker-compose up -d --build

暫停服務(wù) docker-compose down

重啟服務(wù) docekr-compose restart

進(jìn)入 docekr-compose exec $1 $2

$1 docker-compose.yml文件services中定義的服務(wù)名稱

$2 根據(jù)基礎(chǔ)鏡像服務(wù)器決定,一般apline為/bin/sh,其他為"/bin/bash"

查看 docker-compose ps

實(shí)操,docker-compose搭建項(xiàng)目 創(chuàng)建項(xiàng)目目錄
 mkdir php
創(chuàng)建如下項(xiàng)目結(jié)構(gòu)

sites 目錄放置項(xiàng)目文件

services 目錄放置服務(wù)相關(guān)配置

script 放置自定義腳本

├── Readme.md
├── docker-compose.yml
├── script
├── services
│?? ├── mariadb
│?? │?? └── Dockerfile
│?? ├── nginx
│?? │?? ├── Dockerfile
│?? │?? ├── conf.d
│?? │?? │?? └── default.conf
│?? │?? └── nginx.conf
│?? ├── php
│?? │?? └── Dockerfile
│?? └── redis
│??     └── Dockerfile
└── sites
    ├── index.html
    └── index.php

8 directories, 10 files
編輯docker-compose文件
version: "3"
services: 
  php:
    build: ./services/php
    ports: 
      - "9001:9000"
    container_name: lnmp-php
    restart: always
    volumes: 
      - ./sites:/www
      - ./services/php/etc:/usr/local/etc
    networks:
      lnmp_net:
        ipv4_address: 101.11.11.10

  nginx:
    build: ./services/nginx
    ports:
      - "81:80"
      - "444:443"
    container_name: lnmp-nginx
    restart: always
    volumes: 
      - ./sites:/www
      - ./services/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./services/nginx/conf.d:/etc/nginx/conf.d:rw
    networks:
      lnmp_net:
        ipv4_address: 101.11.11.11

  redis:
    build: ./services/redis
    ports: 
      - "6380:6379"
    container_name: lnmp-redis
    networks:
      lnmp_net:
        ipv4_address: 101.11.11.12

  mariadb:
    build: ./services/mariadb
    ports: 
      - "3307:3306"
    container_name: lnmp-mariadb
    restart: always
    volumes: 
      - ./data/mariadb:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123qwe!@#
      MYSQL_USER: demo
      MYSQL_PASSWORD: 123456
    networks:
      lnmp_net:
        ipv4_address: 101.11.11.13

networks:
  lnmp_net:
    driver: bridge
    ipam:
      config:
      - subnet: 101.11.11.0/20
編輯services/nginx文件
FROM nginx:1.17.0-alpine

# 更新安裝源
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g" /etc/apk/repositories

# 設(shè)置時(shí)區(qū)為上海
RUN apk update && apk add --upgrade 
    && apk add tzdata 
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
    && echo "Asia/Shanghai" > /etc/timezone 
    && apk del tzdata
編輯services/php文件
FROM php:7.3.6-fpm-alpine3.9

# 更新安裝源
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g" /etc/apk/repositories

# 設(shè)置時(shí)區(qū)為上海
RUN apk update && apk add --no-cache tzdata autoconf gcc g++ make zlib-dev  curl-dev
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
    && echo "Asia/Shanghai" > /etc/timezone 
    && apk del tzdata 
    && docker-php-ext-install mysqli pdo_mysql opcache 
    && pecl install grpc protobuf xdebug yaf yar swoole   
    && docker-php-ext-enable  xdebug yaf yar swoole grpc protobuf 
以上我們的lnmp環(huán)境基本搭建完畢,下面我們針對(duì)Php解析做相關(guān)的配置
修改services/nginx/nginx.conf,可根據(jù)需求自行修改
user  nginx;
worker_processes  auto;

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/conf.d/*.conf;
}
修改services/nginx/conf.d目錄下文件
該目錄是各個(gè)項(xiàng)目的配置文件,可根據(jù)需求配置單個(gè)或多個(gè)服務(wù)
server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

        #root   /usr/share/nginx/html;
    root   /www;
    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           html;
        fastcgi_pass   101.11.11.10: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)服務(wù)
cd php && docker-compose up --build -d 
上述的步驟根據(jù)網(wǎng)速的docker的配置執(zhí)行時(shí)間個(gè)不相同,因?yàn)閜hp中編譯了些許擴(kuò)展,也可根據(jù)自身需求做響應(yīng)的刪減
通過(guò)瀏覽器訪問(wèn)http://127.0.0.1:81,如果看到了phpinfo的輸出信息,那么恭喜你,你的lnmp環(huán)境已經(jīng)部署完成

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31669.html

相關(guān)文章

  • 分解dockerlnmp環(huán)境搭建中的作用

    摘要:如果不用我們可能將上述講的命令每搭建一次就需要執(zhí)行一遍,有沒(méi)有能統(tǒng)一管理的有,就是在環(huán)境搭建中的作用快速創(chuàng)建鏡像,快速創(chuàng)建并運(yùn)行容器,實(shí)現(xiàn)統(tǒng)一管理。 前言 初學(xué)者在dcoker學(xué)習(xí)過(guò)程中,可能不太清楚docker中那么多的命令,參數(shù),工具在lnmp環(huán)境搭建中起了什么作用,下面跟著我來(lái)熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 鏡像,容器,倉(cāng)庫(kù) 鏡像:Docker 鏡像...

    tommego 評(píng)論0 收藏0
  • docker 搭建lnmp開(kāi)發(fā)環(huán)境

    摘要:學(xué)習(xí)心得前言耗時(shí)一周零三天,終于用搭建起自己的開(kāi)發(fā)環(huán)境。來(lái)搭建一下環(huán)境,然后,桌面沒(méi)了。作為過(guò)來(lái)人,我只想說(shuō),一定要只做一件事,不要過(guò)多的去研究,我們只是想搭建本地運(yùn)行環(huán)境。 docker學(xué)習(xí)心得 前言 耗時(shí)一周零三天,終于用docker搭建起自己的開(kāi)發(fā)環(huán)境。詳細(xì)過(guò)程:請(qǐng)參考分解docker在lnmp環(huán)境搭建中的作用showImg(https://segmentfault.com/im...

    Hydrogen 評(píng)論0 收藏0
  • docker搭建lnmp環(huán)境

    摘要:項(xiàng)目由一組關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整業(yè)務(wù)單元,在文件中定義。 docker搭建lnmp環(huán)境 一、Dockerfile定制鏡像 二、docker-compose 三、docker-compose編排lnmp環(huán)境 1、mysql 2、redis 3、mongo 4、nginx 5、php 6、完整版 四、參考 有收獲的話請(qǐng)加顆小星星,沒(méi)有收獲的話可以 反對(duì) 沒(méi)有幫助 ...

    beanlam 評(píng)論0 收藏0
  • docker 搭建lnmp環(huán)境

    摘要:基礎(chǔ)命令關(guān)于搜索下載查看或者刪除單個(gè)刪除多個(gè)刪除查看信息占用關(guān)于查看重啟停止雜項(xiàng)命令網(wǎng)絡(luò)相關(guān)清除網(wǎng)絡(luò)緩存查看網(wǎng)絡(luò)列表查看詳情掛載目錄清除緩存查看列表查看詳情系統(tǒng)相關(guān)系統(tǒng)信息查看占用清除所有包含構(gòu)建失敗的鏡像沒(méi)有被使用的網(wǎng)絡(luò)配 docker基礎(chǔ)命令 關(guān)于images 搜索 docker search php 下載 docker pull php:7.3.6-fpm-alpine3....

    cucumber 評(píng)論0 收藏0
  • CentOS 7 使用 Docker 快速搭建 LNMP 環(huán)境

    摘要:配置文件配置配置文件配置文件配置文件太大就不貼了,直接下載然后本地修改吧。不會(huì)使用的使用命令進(jìn)行替換。是一種推出的免費(fèi)的公共鏡像庫(kù)服務(wù)。本地對(duì)鏡像打提交鏡像到倉(cāng)庫(kù)參考Docker 安裝安裝 Dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun配置國(guó)內(nèi)鏡像mkdir -p /etc/docker cat...

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

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

0條評(píng)論

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