一、安裝docker和docker-compose
注意:docker和docker-compose安裝再統一用戶權限下
docker守護程序綁定到一個 Unix 套接字而不是 TCP 端口。默認情況下,Unix 套接字由用戶擁有 root,其他用戶只能使用 sudo 來訪問它。該 docker 守護進程始終運行的 root 用戶。 所以docker-compose不建議用pip去安裝(容易出現莫名其的問題)
- 安裝docker
- 舊版本的 Docker 被稱作 docker 或者 docker-engine,Docker CE(社區版)包現在被叫做 docker-ce。如果之前安裝過了,需要先卸載:
sudo apt-get remove docker docker-engine docker.io
2.更新 apt 安裝包索引:
sudo apt-get update
3.安裝軟件包以允許 apt 通過 HTTPS 使用存儲庫:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
4.添加 Docker 官方的 GPG 密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88
5.安裝穩定版倉庫:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
6.安裝 Docker CE 版:
// 更新 apt 安裝包索引(必須要執行) sudo apt-get update //安裝最新版的 Docker CE sudo apt-get install docker-ce
7.檢查版本信息
sudo docker version
- 安裝docker-compose
- 下載Docker Compose的當前穩定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2. 將可執行權限應用於二進制文件:
sudo chmod +x /usr/local/bin/docker-compose
注意:如果命令docker-compose
在安裝後失敗,請檢查您的路徑。您也可以創建指向/usr/bin
或路徑中任何其他目錄的符號鏈接。
//例如: sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.測試安裝
$ docker-compose --version docker-compose version 1.26.0, build 1110ad01
二、編寫docker-compose.yml和 walle.env
- 創建項目文件夾,如:walle
mkdir walle
- 編寫walle.env文件
//沒裝vim的話可以用vi walle.env vim walle.env
文件內容:
//連接數據庫MYSQL_USER默認使用root,如需使用其他用戶,需自建用戶更改walle.env文件 # Set MySQL/Rails environment MYSQL_USER=root MYSQL_PASSWORD=walle MYSQL_DATABASE=walle MYSQL_ROOT_PASSWORD=walle MYSQL_HOST=db MYSQL_PORT=3306
- 編寫docker-compose.yml文件
vim docker-compose.yml
文件內容:
# docker version: 18.06.0+ # docker-compose version: 1.23.2+ # OpenSSL version: OpenSSL 1.1.0h version: "3.7" # 根據自己的docker-compose的版本寫低版本的寫2,最新版本的3.7就可以 services: web: image: alenx/walle-web:2.1 container_name: walle-nginx hostname: nginx-web expose: - "80" ports: # 如果宿主機80端口被佔用,可自行修改爲其他port(>=1024) # 0.0.0.0:要綁定的宿主機端口:docker容器內端口80 - "8080:80" depends_on: - python networks: - walle-net restart: always python: image: alenx/walle-python:2.1 container_name: walle-python hostname: walle-python env_file: # walle.env需和docker-compose在同級目錄 - ./walle.env command: bash -c "cd /opt/walle_home/ && /bin/bash admin.sh migration && python waller.py" expose: - "5000" volumes: - /opt/walle_home/plugins/:/opt/walle_home/plugins/ - /opt/walle_home/codebase/:/opt/walle_home/codebase/ - /opt/walle_home/logs/:/opt/walle_home/logs/ #- /root/.ssh:/root/.ssh/ # 建議註釋掉本行,在進行目標機授權可能存在問題(沒問題的同學可以忽略,也有的建議改爲:- ~/.ssh:/root/.ssh/) depends_on: - db networks: - walle-net restart: always db: image: mysql container_name: walle-mysql hostname: walle-mysql env_file: - ./walle.env command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci'] ports: - "3306:3306" expose: - "3306" volumes: - /data/walle/mysql:/var/lib/mysql networks: - walle-net restart: always networks: walle-net: driver: bridge
三、 啓動
- 一鍵啓動(快速體驗 )
docker-compose up -d && docker-compose logs -f # 打開瀏覽器localhost:8080
- 常用操作
# 構建服務 docker-compose build # 啓動服務,啓動過程中可以直接查看終端日誌,觀察啓動是否成功 docker-compose up # 啓動服務在後臺,如果確認部署成功,則可以使用此命令,將應用跑在後臺,作用類似 nohup python waller.py & docker-compose up -d # 查看日誌,效果類似 tail -f waller.log docker-compose logs -f # 停止服務,會停止服務的運行,但是不會刪除服務所所依附的網絡,以及存儲等 docker-compose stop # 刪除服務,並刪除服務產生的網絡,存儲等,並且會關閉服務的守護 docker-compose down
- 初始登錄賬號如下,開啓你的walle 2.0之旅吧 :
超管:[email protected] \ Walle123 所有者:[email protected] \ Walle123 負責人:[email protected] \ Walle123 開發者:[email protected] \ Walle123 訪客:[email protected] \ Walle123