ubuntu16 docker 部署walle注意事項

一、安裝docker和docker-compose

注意:docker和docker-compose安裝再統一用戶權限下

     docker守護程序綁定到一個 Unix 套接字而不是 TCP 端口。默認情況下,Unix 套接字由用戶擁有 root,其他用戶只能使用 sudo 來訪問它。該 docker 守護進程始終運行的 root 用戶。 所以docker-compose不建議用pip去安裝(容易出現莫名其的問題)

  • 安裝docker
  1. 舊版本的 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
  1. 下載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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章