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

資訊專欄INFORMATION COLUMN

docker 搭建lnmp環(huán)境

cucumber / 2284人閱讀

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

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

搜索 docker search php

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

查看 docker images 或者 docker image ls

刪除單個 docker rmi imageID

刪除多個 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

雜項命令

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

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

查看網(wǎng)絡列表 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)建失敗的鏡像、沒有被使用的網(wǎng)絡配置、已經(jīng)暫停的容器

Dockerfile詳解 文件命令詳解

FROM 指定哪個鏡像作為你的基礎鏡像

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

可以通過docker inspect imageID查看

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

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

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

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

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

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

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

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

ENTRYPOINT 設置容器啟動時運行的命令

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

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

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

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

盡量使用分階段構(gòu)建鏡像 一步步的擴展鏡像功能 避免多層數(shù)鏡像的產(chǎ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,其中versionservices為必要元素。

常用命令:

image 指定購將的基礎鏡像

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

context 指定 Dockerfile 文件所在的路徑

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

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

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

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

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

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

container_name 指定容器名稱

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

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

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

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

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

ports 端口映射

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

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

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

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

restart 自動重啟容器,容器掛掉之后自動重啟機制

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

CLI命令

啟動服務 docker-compose up -d --build

暫停服務 docker-compose down

重啟服務 docekr-compose restart

進入 docekr-compose exec $1 $2

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

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

查看 docker-compose ps

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

sites 目錄放置項目文件

services 目錄放置服務相關(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

# 設置時區(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

# 設置時區(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)境基本搭建完畢,下面我們針對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目錄下文件
該目錄是各個項目的配置文件,可根據(jù)需求配置單個或多個服務
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;
    #}
}
啟動服務
cd php && docker-compose up --build -d 
上述的步驟根據(jù)網(wǎng)速的docker的配置執(zhí)行時間個不相同,因為php中編譯了些許擴展,也可根據(jù)自身需求做響應的刪減
通過瀏覽器訪問http://127.0.0.1:81,如果看到了phpinfo的輸出信息,那么恭喜你,你的lnmp環(huán)境已經(jīng)部署完成

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    Tecode 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<