使用Docker快速建構運行環境
1. 軟體容器化: Docker 是一個開源的軟體平台,可以讓開發者將應用程式和其相依的環境(如庫、工具、設定等)一起打包成為一個輕量的容器。這使得應用程式在任何地方都可以快速地運行,而不受環境的限制。
2. 跨平台: Docker 容器可以在任何支援 Docker 的平台上運行,無論是開發人員的筆記本電腦、測試伺服器,還是生產環境中的雲端服務器。這提供了更大的靈活性和可移植性。
3. 簡化配置和管理: Docker 提供了一個統一的平台,開發者可以使用單個 Dockerfile 文件來定義應用程式的配置,以及 Docker Compose 文件來管理多個容器之間的交互和依賴關係。這簡化了應用程式的配置和部署過程。
4. 提高效能和效率: Docker 容器運行在宿主機的核心上,因此可以實現更高的效能和更快的啟動時間。此外,Docker 可以在同一宿主機上運行多個容器,從而實現資源的有效利用和更高的效率。
5. 進行微服務架構: Docker 可以將大型應用程式拆分為多個微服務,每個微服務都運行在獨立的容器中。這使得應用程式更容易擴展、維護和部署,並且可以實現更高的可靠性和彈性。
Docker Desktop下載點
執行Desker Desktop
這是有目前運行的OpenCart, phpadmin, mariadb, Node-RED的環境。
- 建立一個資料夾Node-RED
- 建立Docker-compose.yml 中所需要的資料夾。nodered-data, image兩個資料夾
- 建立一個docker-compose.yml。
- 開啟cmd 程式,將路徑切換到Node-RED資料夾
- 執行docker-compose up -d,開啟Docker Container node-red 運行OpenCart, phpadmin, mariadb, Node-RED的環境。
- 當測試完後,執行docker-compose down 關閉Docker Container node-red.
Docker-compose.yml
version: ‘2’
services:
node-red:
container_name: mynodered
image: nodered/node-red:3.0.2-18
ports:
– “1880:1880”
volumes:
– ./nodered-data:/data
restart: unless-stopped
mariadb:
image: docker.io/bitnami/mariadb:11.2
container_name: mariadb
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
– ALLOW_EMPTY_PASSWORD=yes
#- MARIADB_ROOT_PASSWORD=12345678
– MARIADB_USER=bn_opencart
#- MARIADB_PASSWORD=bitnami
– MARIADB_DATABASE=bitnami_opencart
ports:
– “3306:3306”
volumes:
# – ./mariadb-data:/bitnami/mariadb
– ‘mariadb_data:/bitnami/mariadb’
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: mariadb
PMA_USER: bn_opencart
#PMA_PASSWORD: 123456
ports:
– “8090:80”
depends_on:
– mariadb
restart: unless-stopped
opencart:
image: bitnami/opencart:4
container_name: opencart
ports:
– ’80:8080′
– ‘443:8443’
environment:
– OPENCART_HOST=localhost
– OPENCART_DATABASE_HOST=mariadb
– OPENCART_DATABASE_PORT_NUMBER=3306
– OPENCART_DATABASE_USER=bn_opencart
– OPENCART_DATABASE_NAME=bitnami_opencart
# ALLOW_EMPTY_PASSWORD is recommended only for development.
– ALLOW_EMPTY_PASSWORD=yes
#- OPENCART_DATABASE_PASSWORD=123456
volumes:
– ‘opencart_data:/bitnami/opencart’
– ‘opencart_storage_data:/bitnami/opencart_storage/’
– ./image:/opt/bitnami/opencart/image/
depends_on:
– mariadb
volumes:
mariadb_data:
driver: local
opencart_data:
driver: local
opencart_storage_data:
driver: local
Docker-Compose.yml 段落說明
運行Node-RED
version: ‘2’
services:
node-red:
container_name: mynodered
image: nodered/node-red:3.0.2-18
ports:
– “1880:1880”
volumes:
– ./nodered-data:/data
restart: unless-stopped
從遠端Docker Hub下載 nodered/node-red:3.0.2-18 image 到 Docker Host (個人電腦中),再運行 Container 起來. 使用TCP/IP Port 1880.
運行 mariadb 資料庫
version: ‘2’
services:
mariadb:
image: docker.io/bitnami/mariadb:11.2
container_name: mariadb
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
– ALLOW_EMPTY_PASSWORD=yes
#- MARIADB_ROOT_PASSWORD=12345678
– MARIADB_USER=bn_opencart
#- MARIADB_PASSWORD=bitnami
– MARIADB_DATABASE=bitnami_opencart
ports:
– “3306:3306”
volumes:
# – ./mariadb-data:/bitnami/mariadb
– ‘mariadb_data:/bitnami/mariadb’
從遠端Docker Hub下載 docker.io/bitnami/mariadb:11.2 image 到 Docker Host (個人電腦中),再運行 Container 起來. 使用TCP/IP Port 3306. user: bn_opencart, database: bitnami_opencart
運行 phpmyadmin 資料庫
version: ‘2’
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: mariadb
PMA_USER: bn_opencart
#PMA_PASSWORD: 123456
ports:
– “8090:80”
depends_on:
– mariadb
restart: unless-stopped
從遠端Docker Hub下載 phpmyadmin/phpmyadmin image 到 Docker Host (個人電腦中),再運行 Container 起來. 使用TCP/IP Port 8090, 連線到mariadb資料庫。
運行 phpmyadmin 資料庫
version: ‘2’
services:
opencart:
image: bitnami/opencart:4
container_name: opencart
ports:
– ’80:8080′
– ‘443:8443’
environment:
– OPENCART_HOST=localhost
– OPENCART_DATABASE_HOST=mariadb
– OPENCART_DATABASE_PORT_NUMBER=3306
– OPENCART_DATABASE_USER=bn_opencart
– OPENCART_DATABASE_NAME=bitnami_opencart
# ALLOW_EMPTY_PASSWORD is recommended only for development.
– ALLOW_EMPTY_PASSWORD=yes
#- OPENCART_DATABASE_PASSWORD=123456
volumes:
– ‘opencart_data:/bitnami/opencart’
– ‘opencart_storage_data:/bitnami/opencart_storage/’
– ./image:/opt/bitnami/opencart/image/
depends_on:
– mariadb
從遠端Docker Hub下載 bitnami/opencart:4 image 到 Docker Host (個人電腦中),再運行 Container 起來. 使用TCP/IP Port 80, 443, 連線到mariadb資料庫。
Node-RED 帳號 http://localhost:1880/
Account | Passwrod | |
Node-Red | admin | 123456 |
Node-Red | user | 123456 |
Dashboard | peter | 123456 |