1. 程式人生 > >Docker入門基礎之應用實戰

Docker入門基礎之應用實戰

當我們掌握了Docker映象和容器的基本用法後,我們現在能做些什麼事情呢?現在我們就來看看使用Docker容器如何安裝常見的軟體,然後執行一個動態網站。

下面我們來學習:

  • 1、安裝Nginx
  • 2、安裝PHP
  • 3、使用MySQL服務
  • 4、執行wordpress部落格

安裝Nginx

執行一個Alpine的容器,選擇Alpine作為系統基礎映象是因為Alpine輕巧的體積,基礎映象只有5.53MB,相比ubuntu映象的88.9MB要小十幾倍。

 root@ubuntu:~# docker run -it -p 8080:80 alpine sh

安裝nginx

 apk add nginx

修改nginx配置

 vi /etc/nginx/conf.d/default.conf

default.conf內容如下:

server {
    listen 80 default_server;
    root /home/www;
    index index.php index.html;
 }

建立Hello World

mkdir /home/www && echo "Hello World" > /home/www/index.html

建立/run/nginx目錄

mkdir /run/nginx

啟動nginx

nginx

在瀏覽器中訪問 http://192.168.43.122:8080

nginx安裝成功,WEB服務訪問正常!

安裝PHP

現在我們來安裝PHP,方法還是一樣,使用 apk add 命令來安裝php7,php-fpm以及相關擴充套件。

apk add --no-cache php7 php7-fpm php7-ftp php7-pdo php7-mysqli php7-simplexml php7-xmlwriter php7-zlib php7-imagick php7-memcached php7-sockets php7-mcrypt php7-zip php7-pgsql php7-pdo_odbc php7-odbc php7-curl php7-iconv php7-xml php7-json php7-gd php7-session php7-opcache php7-pdo_sqlite php7-mbstring php7-common php7-pdo_mysql

以上順帶安裝了很多php擴充套件,可根據實際需求增減。

現在啟動php-fpm7

php-fpm7

修改nginx配置,新增php支援

vi /etc/nginx/conf.d/default.conf

內容如下

server {
        listen 80 default_server;

        root /home/www;
        index index.php index.html;

		location ~ \.php$ {
			try_files $uri =404;
			fastcgi_split_path_info ^(.+\.php)(/.+)$;
			fastcgi_pass 127.0.0.1:9000;
			fastcgi_index index.php;
			include fastcgi_params;
			fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name;
			fastcgi_param PATH_INFO $fastcgi_path_info;
		}
}

在網站目錄中建立phpinfo.php

echo "<?php phpinfo(); ?>" > /home/www/phpinfo.php

重啟nginx

nginx -s reload

在瀏覽器中訪問 http://192.168.43.122:8080/phpinfo.php

PHP安裝成功,WEB服務訪問正常!

使用MySQL服務

我們不在Alpine裡面安裝MySQL,為了使用效率,這裡我們直接使用官方映象即可,新開一個ssh終端連線宿主機,在home目錄下新建database目錄

mkdir /home/database

使用官方mysql5.7映象執行一個容器,root密碼設定為123456,對映3306埠,並將宿主機/home/database目錄掛載到容器/var/lib/mysql目錄

docker run -dit -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /home/database:/var/lib/mysql mysql:5.7

docker ps檢視容器

我們現在運行了2個容器,1個是安裝了nginx和php的Alpine容器,1個是mysql5.7的容器

進入mysql容器

docker exec -it c8c85af64822 sh

登入並建立wordpress資料庫

#用root使用者登入
mysql -u root -p
#建立wordpress資料庫
mysql> CREATE DATABASE wordpress;

執行wordpress部落格

php網站環境和mysql資料庫都準備好了,現在我們回到Alpine的ssh終端上,在容器內下載一個wordpress網站程式。

#進入網站目錄
cd /home/www/
#下載wordpress
wget https://wordpress.org/latest.tar.gz
#解壓
tar zxvf latest.tar.gz
#將wordpress目錄下的檔案複製到www目錄下
cp -ri /home/www/wordpress/* /home/www/
#設定777許可權
chmod -R 777 /home/www/

在瀏覽器中訪問 http://192.168.43.122:8080,可以看到wordpres頁面

填寫資料庫資訊

安裝完成,wordpress正常使用!

相關推薦

Docker入門基礎應用實戰

當我們掌握了Docker映象和容器的基本用法後,我們現在能做些什麼事情呢?現在我們就來看看使用Docker容器如何安裝常見的軟體,

Docker入門基礎映象使用

當執行容器時,使用的映象如果在本地中不存在,docker 就會自動從 docker 映象倉庫中下載,預設是從 Docker Hub

Docker入門系列二:使用dockerfile製作包含指定web應用的映象

實現題目描述的這個需求有很多種辦法,作為入門,讓我們從最簡單的辦法開始。 首先使用命令docker ps確保當前沒有正在執行的Docker例項。 執行命令docker run -it nginx: 然後我們另外開一個終端,用docker ps命令檢視這個執行起來的容器例項,Status的Up 54 s

linux入門基礎通配符

linux     文件通配符 globbing:文件名通配機制(這個是整體的文件名的匹配,而不是部分文件名) //註意這裏指的是文件名稱匹配模式:*:匹配任意長度的任意字符pa*:所有以pa開頭的文件,*pa*,*pa,*pa*a*pa,paa,passwd?:匹配

《從Docker到Kubernetes企業應用實戰課程 - 集訓班》【招生中】

docker課程簡介 本課程是一個Docker技術集訓班,實戰為主,幫助你快速掌握這門主流的技術,能勝任Docker相關工作,同時為簡歷添上靚麗一筆。 Docker是一個開源的應用容器引擎,將項目及依賴打包到一個容器中,然後發布到任意Linux服務器上。 Docker主要特點:開箱即用,快速

Docker入門實踐dokerfile編寫

DockerDockerfile是一個文本格式的配置文件,通過dockerfile可以快速創建自定義鏡像以適應測試,預發布,生產環境等各種應用部署鏡像,一個好的dockerfile可以讓我們的鏡像更方便管理以及應用。 一. Dokerfile的基本結構 Dockfile是由一行行命令語句組成,並且遲滯以#開頭

Docker入門實踐dokerfile編寫(2)

docker前面我介紹到dockerfile的常用的指令,本篇將繼續講到dockerfile相關指令。 1. CMD 容器啟動命令 CMD 指令的格式和 RUN 相似,也是兩種格式: shell 格式:CMD <命令> exec 格式:CMD ["可執行文件", "參數1", "參數2"...]

Python入門基礎函數、切片

[1] href 原來 告訴 官方 tro art range 方便 Python之函數 Python不但能非常靈活地定義函數,而且本身內置了很多有用的函數,可以直接調用。 Python之調用函數 Python內置了很多有用的函數,我們可以直接調用。 要調用一個函數

Linux入門基礎系統運行級別02

基礎 inux log 安裝 用戶模式 例如 multi nfa 切換 Linux有7種運行級別 1.init0 關機2.init1 單用戶(密碼丟失 配置文件修改錯誤)3.init2 無網絡 nfs的完整級別4.init3 多用戶 多CPU 命令行模式5.init4

微服務SpringCloud+Docker入門到高級實戰(教程詳情)

超時時間 images 講課 wiki 灰度 ket ignore 源碼剖析 面向對象 第一章 課程介紹和學習路線 1、微服務架構SpringCloud課程介紹 簡介:課程介紹和課程大綱講解,講課風格和重點內容理解技巧 2、技術選型和學後水平 簡介:課程所需基礎和技術

Docker入門基礎

一、離線環境安裝docker 本實驗安裝環境如下: l  Centos Linux release 7.5.1804 l  docker-ce-18.06.1.ce-3.el7.x86_64 可用下載地址:https://mirrors.aliyun.com/docker-

Docker入門基礎學習整理(3)

Docker常用操作 Docker在只讀層上新增一個可寫層, registry用於儲存映象 一個映象可以有多個Tag,一個Tag只能有一個映象 6種名稱空間:UTS.User,mount,IPC,Pid,Net 使用docker build建立映象 格式 dockersbu

Docker入門基礎學習整理(2)

linux中docker安裝及除錯 centos7 順序執行命令 sudo yum install docker sudo service docker start sudo chkconfig

Docker入門基礎學習整理(1)

Docker入門基礎學習整理 維基百科docker 基礎理論知識學習 維基百科docker 基礎理論知識學習 容器是一種基礎工具;泛指任何可以用於容納其他物品的工具,可以部分或完全封閉,被用於容納、儲存、運輸物品

Docker入門系列三:如何將dockerfile製作好的映象釋出到Docker hub上

這個系列的前兩篇文章,我們已經把我們的應用成功地在Docker裡通過nginx運行了起來,並且用dockerfile裡製作好了一個映象。 Docker入門系列之一:在一個Docker容器裡執行指定的web應用 Docker入門系列之二:使用dockerfile製作包含指定web應用的映象 本

docker入門基礎(一)

目錄 一、簡介 1、docker架構 2、docker的概念 二、docker的安裝和管理 1、docker安裝 2、docker配置阿里雲映象加速 3、基礎命令 一、簡介 參考 https://www.cnblog

docker入門基礎(二)

目錄 三、docker的網路 1、容器虛擬化網路簡介 2、網路模型理論 3、docker網路模型 三、docker的網路 1、容器虛擬化網路簡介 Linux核心支援的六種名稱空間 UTS 主機名和域名 User 使用者 Mount 掛載檔案系統 IPC

LayaBox入門基礎JS程式碼實現按鈕增加功能

2.2.3 實現List增加功能 ​ 實現List增加,需要用到LayaAir引擎laya.display.Sprite中的事件偵聽on()方法對滑鼠點選事件CLICK進行偵聽,以及laya.ui.List API中新增單元格資料來源的方法addItem(); ​ ​ (圖25) ​ 

LayaBox入門基礎JS程式碼實現序號邏輯

2.2 編寫程式碼邏輯 ​2.2.1 實現List序號邏輯 ​ 要實現List序號的資料新增,需要用到“laya.ui.List” API中的list資料來源賦值array,單元格渲染處理器renderHandler,以及“laya.display.Node ”API下通過子節點名字獲取子節點物件的方法g

自然語言處理入門基礎hanlp詳解

自然語言處理定義: 自然語言處理是一門電腦科學、人工智慧以及語言學的交叉學科。雖然語言只是人工智慧的一部分(人工智慧還包括計算機視覺等),但它是非常獨特的一部分。這個星球上有許多生物擁有超過人類的視覺系統,但只有人類才擁有這麼高階的語言。 自然語言處理的目標是讓