使用 Docker-compose 搭建lnmp的詳細(xì)過(guò)程
服務(wù)編排:
應(yīng)用編排:
- 單機(jī)環(huán)境下:shell/python腳本
- 多機(jī)/集群環(huán)境下:ansible、saltstack、pubbet
docker容器編排:
- 單機(jī):docker-compose
- 多機(jī)/集群:docker swarm,mesos+ marathon,kubernetes
一、Docker-Compose簡(jiǎn)介
1.1 為什么使用 Docker-compose
我們知道使用一個(gè)Dockerfile模板文件可以定義一個(gè)單獨(dú)的應(yīng)用容器,如果需要定義多個(gè)容器就需要服務(wù)編排。服務(wù)編排有很多種技術(shù)方案,今天給大家介紹Docker 官方產(chǎn)品Docker Compose。
Dockerfile可以讓用戶管理一個(gè)單獨(dú)的應(yīng)用容器;而Compose則 允許用戶在一個(gè)模板(YAML格式) 中定義一組相關(guān)聯(lián)的應(yīng)用容器( 被稱為一個(gè)project,即項(xiàng)目),例如一個(gè)Web服務(wù)容器再加上后端的數(shù)據(jù)庫(kù)服務(wù)容器等。
1.2 Docker-compose概述
Docker-Compose項(xiàng)目是Docker官方的開(kāi)源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì)Docker容器集群的快速編排。
Docker-Compose將所管理的容器分為三層,分別是工程(project),服務(wù)(service) 以及容器(container)。Docker-Compose運(yùn)行目錄下的所有文件(docker-compose.yml,extends文件或環(huán)境變量文件等)組成一個(gè)工程,若無(wú)特殊指定工程名即為當(dāng)前目錄名。一個(gè)工程當(dāng)中可包含多個(gè)服務(wù),每個(gè)服務(wù)中定義了容器運(yùn)行的鏡像、參數(shù)、依賴。一個(gè)服務(wù)當(dāng)中可包括多個(gè)容器實(shí)例,Docker-Compose并沒(méi)有解決負(fù)載均衡的問(wèn)題,因此需要借助其它工具實(shí)現(xiàn)服務(wù) 發(fā)現(xiàn)及負(fù)載均衡,比如Consul。
Docker-Compose的工程配置文件默認(rèn)為docker-compose. yml,可通過(guò)環(huán)境變量COMPOSE_FILE 或 -f 參數(shù)自定義配置文件,其定義了多個(gè)有依賴關(guān)系的服務(wù)及每個(gè)服務(wù)運(yùn)行的容器。
使用一個(gè)Dockerfile模板文件,可以讓用戶很方便的定義一個(gè)單獨(dú)的應(yīng)用容器。在工作中,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來(lái)完成某項(xiàng)任務(wù)的情況。例如要實(shí)現(xiàn)一個(gè)Web項(xiàng)目,除了Web服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫(kù)服務(wù)容器,甚至還包括負(fù)載均衡容器等。
Compose允許用戶通過(guò)一個(gè)單獨(dú)的docker-compose. yml模板文件(YAML格式)來(lái)定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目 (project) 。
Docker-Compose項(xiàng)目由Python編寫(xiě),調(diào)用Docker服 務(wù)提供的API來(lái)對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持Docker API,就可以在其上利用Compose來(lái)進(jìn)行編排管理。
二、compose 部署
2.1 Docker Compose 環(huán)境安裝
Docker Compose是 Docker 的獨(dú)立產(chǎn)品,因此需要安裝 Docker 之后再單獨(dú)安裝Docker Compose。
#方法一:下載。 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #安裝,給予執(zhí)行權(quán)限 chmod +x /usr/local/bin/docker-compose #查看版本 docker-compose --version ? #方法二:也可以提前下載好安裝包,之后上傳到系統(tǒng)中。 cd /opt/ ls chmod +x docker-compose mv docker-compose /usr/local/bin/ docker-compose --version
2.2 YAML文件格式及編寫(xiě)注意事項(xiàng)
2.2.1 YAML文件格式
YAML是一種標(biāo)記語(yǔ)言,它可以很直觀的展示數(shù)據(jù)序列化格式,可讀性高。類似于 json 數(shù)據(jù)描述語(yǔ)言,語(yǔ)法比 json簡(jiǎn)單的很多。
- YAML數(shù)據(jù)結(jié)構(gòu)通過(guò)縮進(jìn)來(lái)表示
- 連續(xù)的項(xiàng)目通過(guò)減號(hào)來(lái)表示
- 鍵值對(duì)用冒號(hào)分隔
- 數(shù)組用中括號(hào) [ ] 括起來(lái)
- hash 用花括號(hào) { } 括起來(lái)
#一個(gè)鍵如果有多個(gè)值。符號(hào)可以不縮進(jìn),但值要縮進(jìn)。 name: - zhangsan - lisi - wangwu ? name: - zhangsan - lisi - wangwu name: ["zhangsan", "lisi", "wangwu"]
2.2.2 使用YAML時(shí)需要注意下面事項(xiàng)
- 大小寫(xiě)敏感
- 通過(guò)縮進(jìn)表示層級(jí)關(guān)系
- 不支持制表符tab鍵縮進(jìn)T只能使用空格縮進(jìn)
- 縮進(jìn)的空格數(shù)目不重要,只要相同層級(jí)左對(duì)齊,通常開(kāi)頭縮進(jìn)2個(gè)空格
- 用 # 號(hào)注釋
- 符號(hào)字符后縮進(jìn)1個(gè)空格,如"冒號(hào) : "、 "逗號(hào) ,"、"橫杠 - "
- 如果包含特殊字符用單引號(hào)(' ')引起來(lái)會(huì)作為普通字符串處理,雙引號(hào)(" "):特殊字符作為本身想表示的意思
#雙引號(hào)示例: name: "hello, \nworld" 最后name值是兩行內(nèi)容 name: hello, world ? #單引號(hào)示例: name: 'hello, \nworld',只會(huì)作為普通字符 name: hello,\nworld
2.2.3 數(shù)據(jù)結(jié)構(gòu)
#對(duì)象: 鍵值對(duì)的字典 animal: pets ? #數(shù)組: 一組按次序排列的列表 - cat - dog - goldfish ? #布爾值 debug: "true" debug: "false" ? ? #Yaml示例 languages: #序列的映射 - Java - Golang - Python websites: #映射的映射(鍵的值,仍然是鍵值對(duì)) Baidu: www.baidu.com Wangyi: www.163.com Souhu: www.souhu.com #或者 languages: ["Java","Golong","Python"] websites: Baidu: www.baidu.com Wangyi: www.163.com Souhu: www.souhu.com #Json格式 { languages: [ 'Java', 'Golong', 'Python', ], websites: [ Baidu: 'www.baidu.com', Wangyi: 'www.163.com', Souhu: 'www.souhu.com', ] }
2.3 Docker Compose 配置常用字段
字段 | 描述 |
---|---|
build | 使用Dockerfile構(gòu)建鏡像。指定Dockerfile 文件名,要指定Dockerfile文件需要在bui ld標(biāo)簽的子級(jí)標(biāo)簽中使用dockerfile標(biāo)簽指定 |
dockerfile | 構(gòu)建鏡像上下文路徑(指定Dockerfile文件) |
context | 可以是dockerfile 的路徑,或者是指向git 倉(cāng)庫(kù)的url地址 |
image | 指定鏡像 |
command | 執(zhí)行命令,覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令(類似于 docker run) |
container_name | 指定容器名稱,由于容器名稱是唯一的, 如果指定自定義名稱,則無(wú)法scale指定容器數(shù)量(同一個(gè)鏡像指定多個(gè)容器數(shù)量) |
deploy | 指定部署和運(yùn)行服務(wù)相關(guān)的配置,只能在Swarm模式使用 |
environment | 添加環(huán)境變量 |
networks | 加入網(wǎng)絡(luò),引用頂級(jí)networks下條目 |
networks_mode | 設(shè)置容器的網(wǎng)絡(luò)模式,如 host,bridge |
ports | 暴露容器端口,與-p相同,但端口不能低于60 |
volumes | 掛載一個(gè)宿主機(jī)目錄或命令卷到容器中,命令卷要在頂級(jí)volumes定義卷名稱 |
volumes_from | 從另一個(gè)服務(wù)或容器掛載卷,可選參數(shù):ro 和:rw。僅版本'2' 支持 |
hostname | 容器主機(jī)名 |
sysctls | 在容器內(nèi)設(shè)置內(nèi)核參數(shù) |
links | 連接到另外一個(gè)容器,- 服務(wù)名稱[:服務(wù)別名] (類似于容器互聯(lián)) |
privileged | 用來(lái)給容器root權(quán)限,注意是不安全的,只有兩個(gè)值:true或false |
restart | 設(shè)置重啟策略,never,always, no-failure, unless-stopped |
never,默認(rèn)策略,在容器退出時(shí)不重啟容器。 | |
on-failure,在容器非正常退出時(shí)(退出狀態(tài)非0),才會(huì)重啟容器。 | |
on-failure:3,在容器非正常退出時(shí)重啟容器,最多重啟3次。 | |
always,在容器退出時(shí)總是重啟容器。 | |
unless-stopped,在容器退出時(shí)總是重啟容器,但是不考慮在Docker守護(hù)進(jìn)程啟動(dòng)時(shí)就已經(jīng)停止了的容器。 | |
depends_on | 在使用Compose時(shí),最大的好處就是少打啟動(dòng)命令,但一般項(xiàng)目容器啟動(dòng)的順序是有要求的,如果直接從上到下啟動(dòng)容器,可能會(huì)因?yàn)槿萜饕蕾噯?wèn)題而啟動(dòng)失敗。例如在沒(méi)啟動(dòng)數(shù)據(jù)庫(kù)容器的時(shí)候啟動(dòng)應(yīng)用容器,應(yīng)用容器會(huì)因?yàn)檎也坏綌?shù)據(jù)庫(kù)而退出。depends_on標(biāo)簽用于解決容器的依賴、啟動(dòng)先后的問(wèn)題。 |
(1)depends_on 指定依賴關(guān)系和啟動(dòng)順序
php: depends_on: - apache - mysql
(2)使用鏡像
- 如果想使用已存在的鏡像,使用image。
- 如果想使用自己構(gòu)建的鏡像,使用build、dockerfile、context。
(3)引用網(wǎng)絡(luò)
在頂級(jí)層設(shè)置兩個(gè)網(wǎng)絡(luò)模式,在服務(wù)中引用不同的網(wǎng)絡(luò),可以實(shí)現(xiàn)網(wǎng)絡(luò)的隔離,和網(wǎng)絡(luò)的兼容。(可以理解為vlan)
networks: lnmp lamp service: nginx: networks:lnmp apache: networks:lamp mysql: networks: lnmp lamp php: networks: lnmp lamp
(4)命令卷
在 version 3
,可以在頂級(jí)層中定義一個(gè)命令卷(例如:db-data),db-data 作為一個(gè)中間件,實(shí)際并不存在,只是為了做數(shù)據(jù)同步。(可以理解為vlan)
version: "3" ? services: ? nginx: volumes: - db_data:/var/lib/db mysql: volumes: - db_data:/var/lib/backup/data ? volumes: #在頂級(jí)層定義一個(gè)命令卷 db_data:
2.4 Docker Compose 常用命令
命令 | 描述 |
---|---|
build | 重新構(gòu)建服務(wù) |
ps | 列出容器 |
up | 創(chuàng)建和啟動(dòng)容器 |
exec | 在容器里面執(zhí)行命令 |
scale | 指定一個(gè)服務(wù)容器啟動(dòng)數(shù)量 |
top | 顯示容器進(jìn)程 |
logs | 查看容器輸出 |
down | 刪除容器、網(wǎng)絡(luò)、數(shù)據(jù)卷和鏡像 |
stop/start/restart | 停止/啟動(dòng)/重啟服務(wù) |
三、使用Docker-compose 搭建lnmp
3.1 Docker Compose 文件結(jié)構(gòu)
[root@zy7 compose_lnmp]# yum -y install tree ? [root@zy7 compose_lnmp]# tree /opt/compose_lnmp/ -L 2 /opt/compose_lnmp/ ├── docker-compose.yml ├── mysql #創(chuàng)建模板腳本 │ ├── Dockerfile #創(chuàng)建容器腳本 │ ├── my.cnf #復(fù)制配置文件 │ └── mysql-boost-5.7.20.tar.gz #復(fù)制源碼包 ├── nginx │ ├── Dockerfile │ └── nginx-1.12.0.tar.gz ├── php │ ├── Dockerfile │ └── php-7.1.10.tar.bz2 └── wwwroot ├── index.html #站點(diǎn)網(wǎng)頁(yè) ├── wordpress └── wordpress-4.9.4-zh_CN.tar.gz
3.2 準(zhǔn)備依賴文件,配置nginx
#創(chuàng)建項(xiàng)目目錄 compose_lnmp; #創(chuàng)建服務(wù)子目錄 [root@zy7 ~]# mkdir /opt/compose_lnmp/ [root@zy7 ~]# cd /opt/compose_lnmp [root@zy7 compose_lnmp]# mkdir nginx mysql php wwwroot ? #上傳wordpress軟件包,準(zhǔn)備測(cè)試頁(yè)面 [root@zy7 compose_lnmp]# cd /opt/compose_nginx/wwwroot/ [root@zy7 wwwroot]# ls wordpress-4.9.4-zh_CN.tar.gz [root@zy7 wwwroot]# tar xf wordpress-4.9.4-zh_CN.tar.gz [root@zy7 wwwroot]# echo "<h1>this is test web</h1>" > /opt/compose_lnmp/wwwroot/index.html ? ? #上傳nginx軟件包 [root@zy7 compose_lnmp]# cd nginx/ [root@zy7 nginx]# ls nginx-1.12.0.tar.gz ? ? #編寫(xiě)nginx的Dockerfile文件 [root@zy7 nginx]# vim Dockerfile #基于基礎(chǔ)鏡像 FROM centos:7 #用戶信息 MAINTAINER this is nginx image <yuji> #添加環(huán)境包 RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make RUN useradd -M -s /sbin/nologin nginx #上傳nginx軟件壓縮包,并解壓 ADD nginx-1.12.0.tar.gz /usr/local/src/ #指定工作目錄 WORKDIR /usr/local/src/nginx-1.12.0 RUN ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module && make -j8&& make install ENV PATH /usr/local/nginx/sbin:$PATH #修改nginx配置文件 RUN sed -i 's/#charset koi8-r;/charset utf-8;/' /usr/local/nginx/conf/nginx.conf \ && sed -i '45 s/index index.html index.htm;/index index.html index.php;/' /usr/local/nginx/conf/nginx.conf \ && sed -i '65,71 s/#//' /usr/local/nginx/conf/nginx.conf \ && sed -i 's/fastcgi_pass 127.0.0.1:9000;/fastcgi_pass 172.18.0.30:9000;/' /usr/local/nginx/conf/nginx.conf \ && sed -i 's#/scripts#/usr/local/nginx/html#' /usr/local/nginx/conf/nginx.conf #也可以提前將修改好nginx.conf,放入nginx目錄下,之后使用ADD指令復(fù)制到鏡像中。則可避免在鏡像中修改。 #暴露端口 EXPOSE 80 EXPOSE 443 #前臺(tái)啟動(dòng)nginx ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
3.3 配置mysql
#進(jìn)入mysql子目錄 [root@zy7 ~]# cd /opt/compose_lnmp/mysql/ #將mysql包上傳到此目錄 [root@zy7 mysql]# ls mysql-boost-5.7.20.tar.gz ? #編寫(xiě)mysql的Dockerfile文件 [root@zy7 mysql]# vim Dockerfile FROM centos:7 MAINTAINER this is mysql image <zhi> RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make RUN useradd -M -s /sbin/nologin mysql ADD mysql-boost-5.7.20.tar.gz /usr/local/src/ WORKDIR /usr/local/src/mysql-5.7.20/ RUN cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=boost \ -DWITH_SYSTEMD=1 && make -j8 && make install RUN chown -R mysql:mysql /usr/local/mysql/ ADD my.cnf /etc/ RUN chown mysql:mysql /etc/my.cnf ENV PATH /usr/local/mysql/bin:/usr/local/mysql/lib:$PATH WORKDIR /usr/local/mysql/ RUN bin/mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ EXPOSE 3306 CMD /usr/local/mysql/bin/mysqld
編寫(xiě)myslq主配置文件my.cnf
#配置myslq主配置文件my.cnf(用來(lái)復(fù)制到容器) [root@zy7 mysql]# vim my.cnf [client] port = 3306 socket = /usr/local/mysql/mysql.sock ? [mysql] port = 3306 socket = /usr/local/mysql/mysql.sock ? [mysqld] user = mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 character_set_server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket = /usr/local/mysql/mysql.sock server-id = 1 ? sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
3.4 配置php
[root@zy7 compose_lnmp]# cd /opt/compose_lnmp/php/ #將php包上傳 [root@zy7 php]# ls php-7.1.10.tar.bz2 ? #編寫(xiě)php的Dockerfile [root@zy7 php]# vim Dockerfile FROM centos:7 MAINTAINER this is php image <yuji> RUN yum -y install gd \ libjpeg libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel \ gcc gcc-c++ make pcre-devel RUN useradd -M -s /sbin/nologin nginx ADD php-7.1.10.tar.bz2 /usr/local/src/ WORKDIR /usr/local/src/php-7.1.10 RUN ./configure \ --prefix=/usr/local/php \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --with-mysqli \ --with-zlib \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-openssl \ --enable-fpm \ --enable-mbstring \ --enable-xml \ --enable-session \ --enable-ftp \ --enable-pdo \ --enable-tokenizer \ --enable-zip && make && make install ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH ? RUN \cp /usr/local/src/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini \ && sed -i 's#mysqli.default_socket =#mysqli.default_socket = /usr/local/mysql/mysql.sock#' /usr/local/php/lib/php.ini \ && sed -i '939 s#;date.timezone =#date.timezone = Asia/Shanghai#' /usr/local/php/lib/php.ini ? RUN \cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf \ && sed -i '17 s/^;//' /usr/local/php/etc/php-fpm.conf ? RUN \cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf \ && sed -i 's#user = nobody#user = nginx#' /usr/local/php/etc/php-fpm.d/www.conf \ && sed -i 's#group = nobody#group = nginx#' /usr/local/php/etc/php-fpm.d/www.conf \ && sed -i 's#listen = 127.0.0.1:9000#listen = 172.18.0.30:9000#' /usr/local/php/etc/php-fpm.d/www.conf ? #也可以提前準(zhǔn)備好php.ini、php-fpm.conf、www.conf這三個(gè)文件,放入php目錄下,之后使用ADD指令復(fù)制到鏡像中 ? EXPOSE 9000 ENTRYPOINT [ "/usr/local/php/sbin/php-fpm", "-F" ]
3.5 編寫(xiě)docker-compose.yml
#先拉取鏡像centos:7 [root@zy7 compose_lnmp]# docker pull centos:7 ? [root@zy7 compose_lnmp]# vim /opt/compose_lnmp/docker-compose.yml #使用版本2(3版本不支持指令volumes_from) version: '2' ? #使用services定義服務(wù) services: #配置nginx服務(wù) nginx: #設(shè)置容器名 container_name: nginx #設(shè)置主機(jī)名為nginx hostname: nginx #使用dockerfile創(chuàng)建鏡像。Dockerfile文件在當(dāng)前目錄的nginx目錄下,文件名為Dockerfile build: #指定Dockerfile文件所在位置 context: ./nginx dockerfile: Dockerfile #映射端口 ports: - 1315:80 - 1316:443 #加入到lnmp網(wǎng)絡(luò)中,使用ip172.18.0.0.10 networks: lnmp: ipv4_address: 172.18.0.10 #將當(dāng)前目錄下的wwwroot目錄掛載到容器的/usr/local/nginx/html目錄 volumes: - ./wwwroot/:/usr/local/nginx/html #配置服務(wù)mysql mysql: container_name: mysql hostname: mysql build: context: ./mysql dockerfile: Dockerfile ports: - 3306:3306 networks: lnmp: ipv4_address: 172.18.0.20 #設(shè)置/usr/local/mysql目錄為數(shù)據(jù)卷 volumes: - /usr/local/mysql #配置服務(wù)php php: hostname: php build: context: ./php dockerfile: Dockerfile container_name: php ports: - 9000:9000 networks: lnmp: ipv4_address: 172.18.0.30 #從nginx容器和mysql容器獲取數(shù)據(jù)卷 volumes_from: - nginx - mysql #php容器需要在nginx和mysql之后啟動(dòng) depends_on: - nginx - mysql #php和容器nginx,容器mysql連接 links: - nginx - mysql #設(shè)置網(wǎng)絡(luò)為自定義網(wǎng)絡(luò) #配置網(wǎng)絡(luò)模式和網(wǎng)絡(luò)名 networks: #設(shè)置網(wǎng)絡(luò)名lnmp lnmp: #網(wǎng)絡(luò)模式為bridge橋接模式 driver: bridge ipam: config: #使用的網(wǎng)段為172.18.0.0/16 - subnet: 172.18.0.0/16
運(yùn)行docker-compose
#在工作目錄使用此命令。 #-f: --file-name, 指定模板文件。默認(rèn)為docker-compose.yml #-p: --project-name NAME ,指定項(xiàng)目名稱,默認(rèn)使用目錄名 #-d: 在后臺(tái)運(yùn)行 [root@zy7 compose_lnmp]# docker-compose -f docker-compose.yml up -d ? #在工作目錄,使用 docker-compose ps 可以看到啟動(dòng)的容器狀態(tài) [root@zy7 compose_lnmp]# docker-compose ps
進(jìn)入mysql容器,進(jìn)行用戶授權(quán)
#進(jìn)入mysql容器,進(jìn)行用戶授權(quán)。 [root@zy7 mysql]# docker exec -it mysql /bin/bash [root@mysql mysql]# mysql ? mysql> create database wordpress; ? mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by 'abc123'; ? mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123'; ? mysql> flush privileges;
3.6 瀏覽器訪問(wèn)測(cè)試
http://192.168.126.27:1315/wordpress/index.php #在yaml文件中nginx端口映射為1315
http://192.168.126.27:1315/ #直接訪問(wèn),可以看見(jiàn)創(chuàng)建的測(cè)試網(wǎng)頁(yè)
到此這篇關(guān)于使用 Docker-compose 搭建lnmp的文章就介紹到這了,更多相關(guān)Docker-compose 搭建lnmp內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes)
這篇文章主要介紹了centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03在Docker容器中使用iptables時(shí)的最小權(quán)限的開(kāi)啟方法
這篇文章主要介紹了在Docker容器中使用iptables時(shí)的最小權(quán)限的開(kāi)啟方法的相關(guān)資料,需要的朋友可以參考下2017-01-01Docker搭建Redis主從復(fù)制的實(shí)現(xiàn)步驟
本文主要介紹了Docker搭建Redis主從復(fù)制的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄功能
這篇文章主要介紹了Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入)
這篇文章主要介紹了ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06docker部署crownblog項(xiàng)目到阿里云的方法步驟
這篇文章主要介紹了docker部署crownblog項(xiàng)目到阿里云的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05