Docker容器與虛擬化技術:OpenEuler 使用 docker-compose 部署 LNMP

目錄

?一、實驗

1.環境

2.OpenEuler 部署 docker-compose

3.docker-compose 部署 LNMP

二、問題

1.ntpdate未找到命令

2.timedatectl 如何設置時區與時間同步

3.php網頁顯示時區不對


?

?

?一、實驗

1.環境

(1)主機

表1? 主機

系統架構版本IP備注
LinuxopenEuler22.03 LTS SP2

192.168.204.144(動態)

192.168.204.141(靜態)

192.168.204.142(靜態)

?

?docker25.0.3??
?docker-compose2.24.6??

(2)查看系統版本

[root@localhost ~]# cat /etc/os-release

e4d8bd1e19174f7ebec18a7c53fb3c2a.png

(3) 查看網絡ip

[root@localhost ~]# ip addr

d78e9538efb44978898b7c27f1d7e222.png

(4) 查看docker版本

[root@localhost ~]# docker --version

d00ab0ec09264683a2035688aee10fcd.png

(5)查看docker進程

[root@localhost ~]# docker ps

309f51314e7e4dfab8472d60427f47c1.png

(6)查看端口

80 、3306、9000端口被docker容器占用

[root@localhost ~]# netstat -antlp

8742c53d1f0249649cead03b751f80fa.png

[root@localhost ~]# netstat -antlp |grep docker-proxy

46c090b2420a4d1086b3df2359e061bd.png

(7)刪除所有容器

[root@localhost ~]# docker rm -f $(docker ps -aq)

2154460fe31c4853b8c656f45b417b6f.png

再次查看

[root@localhost ~]# docker ps

4c4b4eea8c4b49dbb9f8888b42786362.png

?

2.OpenEuler 部署 docker-compose

(1) 官網

Releases · docker/compose · GitHub

(2)下載

wget https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64

(3) 移動賦權

[root@localhost ~]# sudo mv docker-compose-linux-x86_64 /usr/bin/docker-compose
[root@localhost ~]#  sudo chmod +x /usr/bin/docker-compose

71d16c0e713a4dfc9c4d474862da0dd7.png

(4)查看版本

[root@localhost ~]# docker-compose version

771de0f9812f4edba476aa2eb6d96d1e.png

?

3.docker-compose 部署 LNMP

(1)查看docker鏡像

[root@localhost ~]# docker images

f449a55cbf974ec983cf799bd66a4654.png

(2)創建掛載目錄


[root@localhost ~]# mkdir -p /docker/mysql/db /docker/www /docker/nginx/conf.d[root@localhost ~]# cd /docker/ ; ls

40662f67ce6741efb198eac3d883bd62.png

(3)編輯配置文件

[root@localhost docker]# vim /docker/docker-compose.yml

dc832451850349f68e4981041d200226.png

version: "3.9"
services:mysql:restart: alwaysimage: mysql:8.0.35container_name: mysqlcommand:--default-authentication-plugin=mysql_native_password--default-time-zone=+08:00environment:TZ: PRCMYSQL_ROOT_PASSWORD: Root_321ports:- "3306:3306"volumes:- /docker/mysql/db:/var/lib/mysqlphp-fpm:restart: alwaysimage: bitnami/php-fpmcontainer_name: php-fpmenvironment:- TZ=Asia/Shanghaivolumes:- /docker/www:/usr/share/nginx/htmldepends_on:- mysqlnginx:image: nginx:latestrestart: alwayscontainer_name: nginxenvironment:- TZ=Asia/Shanghaiports:- 80:80- 443:443volumes:- /docker/nginx/conf.d/:/etc/nginx/conf.d- /docker/www:/usr/share/nginx/htmldepends_on:- php-fpm
~

10790c4a202347e4b9480c77ea1deeb3.png

(3)查看目錄

[root@localhost docker]# ls
docker-compose.yml  mysql  nginx  www

bfdc879d658c46688b3df513fb70d21e.png

(4)添加nginx配置文件

[root@localhost docker]# cd nginx/conf.d/
[root@localhost conf.d]# ls
[root@localhost conf.d]# vim default.conf

33980d6e75f4429c8b76c1754097ef3a.png

server{listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm index.php;}location ~ \.php$ {root /usr/share/nginx/html;fastcgi_pass php-fpm:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;include fastcgi_params;}}

4598357e8e7d4a5aad47d58bfae996ca.png

(5)查看目錄

[root@localhost docker]# tree /docker

3efaba2f6d524577bd4f9b3a92002885.png

[root@localhost docker]# tree /docker -s

ed72ad801278427b87310e02d66ecd98.png

(6)運行

-d 在后臺運行容器,沒有提示信息

[root@localhost docker]# docker-compose up -d

1eba717052b240e0951b97e2666211e8.png

(7)查看進程

[root@localhost docker]# docker ps
CONTAINER ID   IMAGE             COMMAND                   CREATED          STATUS          PORTS                                                                      NAMES
0194b5301702   nginx:latest      "/docker-entrypoint.…"   47 seconds ago   Up 45 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx
388b48d024e3   bitnami/php-fpm   "php-fpm -F --pid /o…"   47 seconds ago   Up 46 seconds   9000/tcp                                                                   php-fpm
3250c88c5e04   mysql:8.0.35      "docker-entrypoint.s…"   47 seconds ago   Up 46 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                       mysql

de3a88914dee4ab495b20946780658c1.png

(8)訪問

http://192.168.204.141

目前為空

189bb354788841c680676c47c61bdcde.png

(9)創建index.php

[root@localhost docker]# cd www/
[root@localhost www]# ls
[root@localhost www]# vim index.php

dd2fc44753fe48dea86ac5cb71dda661.png

<?php
phpinfo();

4ee592c9056846ec8fd9e37117de92d6.png

(10)再次訪問

http://192.168.204.141

7ebfbfd03a4a4ad09c95a9f19646518e.png

(11)創建數據庫連接db.php

[root@localhost www]# sudo vim /docker/www/db.php

2eb32c355d1a42209ee2dc03a06ac0ff.png

<?php
date_default_timezone_set("PRC");
#輸出php版本號
echo PHP_VERSION;
printf("<br>");
echo date('Y-m-d H:i:s');
printf("<br>");
/*循環格式化輸出*/
for ($i = 1; $i <= 5; $i++) {printf("<h3>%03d</h3>", $i);
}
//---pdo 連接數據庫
$dsn = 'mysql:host=mysql;dbname=mysql';
$username = 'root';
$password = 'Root_321';
try {$db = new PDO($dsn, $username, $password);// 設置錯誤模式為異常$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);echo "成功連接到數據庫";
} catch (PDOException $e) {echo "連接數據庫失敗: " . $e->getMessage();
} catch (Exception $e) {echo "系統未知異常:" . $e->getMessage();
}
$st = $db->query("show databases");
while ($row = $st->fetch(3)) {echo $row[0] . '<br>';
}

b5e5d372ca594f5f8687a9cdbbcffcc7.png

(12) 訪問

http://192.168.204.141/db.php

a8a32b2197984227858459f43f49ac1f.png

(13)刪除項目

[root@localhost docker]# docker-compose rm -f -s

c2b03a154a0a49ccb00bf48efbebe71b.png

(14)查看進程

目前為空

[root@localhost docker]# docker ps

4b32b87f1dea4ce8a8cfb27721cc7a9b.png

?

二、問題

1.ntpdate未找到命令

(1)報錯

-bash: ntpdate:未找到命令

01527d0e664c4141b1e3a9e538791f0f.png

(2)原因分析

未安裝ntp

(3)解決方法

[root@localhost www]# dnf install ntp -y

537cdd8778014b3588d45c70a41567be.png

成功:

[root@localhost www]# ntpdate cn.pool.ntp.org

17ed09a8c1824a818c4d34764128d027.png

?

2.timedatectl 如何設置時區與時間同步

(1)設置時區

#設置時區
[root@localhost www]# timedatectl set-timezone Asia/Shanghai#查看
[root@localhost www]# timedatectl

722c15f690f2474b94bc9588d2dcb35b.png

(2)設置時間同步

#開啟同步
[root@localhost www]# timedatectl set-ntp true#關閉同步
[root@localhost www]# timedatectl set-ntp false#查看
[root@localhost www]# timedatectl

bc4984720b0841179febdb360f239ffc.png

?

3.php網頁顯示時區不對

(1)報錯

f070438620564d2c9d68f2e8efd2958f.png

(2)原因分析

php文件未設置時區

(3)解決方法

修改db.php文件

添加如需代碼:

date_default_timezone_set("PRC");

277b8bdb7c3c47bf980aad6adc3fd255.png

成功:

a8a32b2197984227858459f43f49ac1f.png

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/710782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710782.shtml
英文地址,請注明出處:http://en.pswp.cn/news/710782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker啟動容器報錯:ERRO[0000] error waiting for container: context canceled,解決方法

系統環境&#xff1a;ubuntu16.04&#xff0c;已安裝docker 執行命令&#xff1a;sudo docker run -it --privileged --shm-size128g -v /home:/home docker-image /bin/bash 報錯 docker: Error response from daemon: could not select device driver "" with …

Android PMS實戰——Hook技術介紹(十四)

在了解了 PMS 的調用流程之后,都有那些用處呢?首先幫助了解 Android 包管理系統原理,還有就是配合 AMS 通過 Hook 技術,實現熱更新、插件化等功能。 我們可以通過反射獲取到 PackageParser 對象,再反射調用它的 parsePackage() 傳入 apk 路徑完成解析獲取到 Package 對象,…

厚膜電阻與薄膜電阻相比,特點是什么?

厚膜電阻與薄膜電阻是兩種常見的電阻器件&#xff0c;它們之間的特點主要有以下幾個方面&#xff1a; 1. 厚度不同&#xff1a;厚膜電阻的膜層厚度較大&#xff0c;一般在幾微米到幾十微米之間&#xff0c;而薄膜電阻的膜層厚度較薄&#xff0c;一般在幾納米到幾微米之間。 2. …

單片機精進之路-9ds18b20溫度傳感器

ds18b20復位時序圖&#xff0c;先將b20的數據引腳拉低至少480us&#xff0c;然后再將數據引腳拉高15-60us&#xff0c;再去將測傳感器的數據引腳是不是變低電平并保持60-240us&#xff0c;如果是&#xff0c;則說明檢測到溫度傳感器&#xff0c;并正常工作。需要在240us后才能檢…

xss高級靶場

一、環境 XSS Game - Ma Spaghet! | PwnFunction 二、開始闖關 第一關 看看代碼 試一下直接寫 明顯進來了為什么不執行看看官方文檔吧 你不執行那我就更改單標簽去使用唄 ?somebody<img%20src1%20onerror"alert(1)"> 防御&#xff1a; innerText 第二關…

Codeforces Round 930 (Div. 2) (A~B)

比賽&#xff1a;Codeforces Round 930 (Div. 2) (A~B) 目錄&#xff1a;A B A題&#xff1a;Shuffle Party 標簽: 模擬 題目大意 給你一個數組 a1,a2,…,an。最初&#xff0c;每個 1 ≤ i ≤ n都有 ai i&#xff0c;整數 k ≥ 2的運算 swap(k)定義如下&#xff1a; 設 d是…

Python圖像形態學處理:腐蝕、膨脹、禮帽、黑帽……

文章目錄 二值形態學灰度形態學 python圖像處理教程&#xff1a;初步&#x1f4f7;插值變換 最基礎的形態學操作有四個&#xff0c;分別是腐蝕、膨脹、開計算和閉計算&#xff0c;【scipy.ndimage】分別實現了二值數組和灰度數組的這四種運算。而針對灰度圖像&#xff0c;【sc…

Office/WPS 好用的PPT插件-智能選擇布局

軟件介紹 PPT大珩助手是一款全新設計的Office PPT插件&#xff0c;它是一款功能強大且實用的PPT輔助工具&#xff0c;能夠輕松幫助您修改、優化和管理幻燈片。憑借豐富的功能和用戶友好的界面&#xff0c;PPT大珩助手能夠助力您打造出精美而專業的演示文稿。我們致力于為用戶提…

Flutter學習7 - Dart 泛型

1、泛型類 //泛型類 class Cache<T> {final Map<String, T> _cache {};void saveData(String key, T value) {_cache[key] value;}//泛型方法T? getData(String key) {return _cache[key];} }void main() {Cache<int> cache1 Cache();const String name…

NGINX的重寫與反向代理機制解析

目錄 引言 一、重寫功能 &#xff08;一&#xff09;if指令 1.判斷訪問使用的協議 2.判斷文件 &#xff08;二&#xff09;return指令 1.設置返回狀態碼 2.返回指定內容 3.指定URL &#xff08;三&#xff09;set指令 1.手動輸入變量值 2.調用其它變量值為自定義變…

RISC-V特權架構 - CSR寄存器

RV32/64 特權架構 - CSR寄存器 1 CSR地址空間2 CSR定義2.1 用戶級2.2 監管級2.3 超級監管級2.4 機器級 3 CSR訪問3.1 CSRRW3.2 CSRRS3.3 CSRRC3.4 CSRRWI3.5 CSRRSI3.6 CSRRCI 本文屬于《 RISC-V指令集基礎系列教程》之一&#xff0c;歡迎查看其它文章。 1 CSR地址空間 RISC&…

房貸計算器微信小程序原生語言

微信小程序: 房貸計算器 效果: 輸入 300萬 結果 還款明細 一共有3個頁面 1、輸入頁面 2、結果頁面 3、詳情頁面 1 index頁面 index.wxml文件 <view class="text-black"><!--房屋總價--><view class="cu-bar bg-white solid-bottom"&…

TCP/IP狀態遷移

TCP&#xff08;傳輸控制協議&#xff09;是一種面向連接的流式控制協議&#xff0c;它定義了不同的狀態以管理通信過程中的連接。TCP 狀態遷移描述了 TCP 連接在不同狀態之間的轉換過程&#xff0c;常見的 TCP 狀態包括 CLOSED、LISTEN、SYN_SENT、SYN_RECEIVED、ESTABLISHED、…

免費下載《金融行業數據安全交換解決方案白皮書》

金融行業包括商業銀行業務、證券業務、保險業務、基金業務、信托業務等&#xff0c;因此數據類型多種多樣&#xff0c;并且數據涉及主體眾多&#xff0c;應用場景上較為多樣復雜&#xff0c;在數據交換上存在安全、合規、可控、可靠、高效等需求。 金融行業會面臨哪些數據安全…

IIS發布PHP網站字體404解決辦法

最近在使用 IIS 發布 PHP 網站時&#xff0c;我遇到了一個前端問題&#xff0c;即字體庫文件 404 錯誤。這個問題的根本原因是 IIS 未能正確識別字體文件類型&#xff0c;導致瀏覽器在加載頁面時無法正確獲取所需字體資源&#xff0c;進而觸發了404錯誤。這樣的問題會導致網站頁…

npm install 報錯常見的解決方法

npm install 報錯的情況有很多種&#xff0c;每種錯誤的具體解決方案也有所不同。這里我將匯總一些常見的npm install報錯及其解決辦法&#xff1a; 1. 下載速度慢/網絡問題 解決辦法&#xff1a;更換npm包的鏡像源至國內鏡像&#xff0c;如淘寶npm鏡像&#xff1a;npm confi…

Javascript:輸入輸出

目錄 一.前言 二.正文 1.輸出 2.輸入 3.字面量 概念&#xff1a; 三.結語 一.前言 Javascript作為運行瀏覽器的語言&#xff0c;對于學習前端的同學來說十分重要&#xff0c;那么從現在開始我們將開始介紹有關 Javascript。 二.正文 1.輸出 document.write() : 向body內…

第十四篇【傳奇開心果系列】Python的文本和語音相互轉換庫技術點案例示例:深度解讀Azure Cognitive Services個性化推薦系統

傳奇開心果博文系列 系列博文目錄Python的文本和語音相互轉換庫技術點案例示例系列 博文目錄前言一、個性化推薦系統介紹和關鍵功能以及優勢解說二、雛形示例代碼三、個性化推薦示例代碼四、實時推薦示例代碼五、多種推薦算法示例代碼六、易于集成示例代碼七、數據安全和隱私保…

C# DLL實現泄露實驗

先說結論&#xff1a;如果應用程序項目中使用直接引用的形式調用動態鏈接庫&#xff0c;當動態鏈接庫是在調試模式生成的情況下&#xff0c;即使應用程序以發布模式生成&#xff0c;跟隨應用程序一同生成的動態鏈接庫仍為調試模式&#xff0c;會引發DLL實現泄露問題&#xff1b…

Google Genie:創意互動環境

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…