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