一、安装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之旅吧 :
超管:super@walle-web.io \ Walle123 所有者:owner@walle-web.io \ Walle123 负责人:master@walle-web.io \ Walle123 开发者:developer@walle-web.io \ Walle123 访客:reporter@walle-web.io \ Walle123
来源:oschina
链接:https://my.oschina.net/u/3668566/blog/4321845