文章目录
  1. 1. 创建用户,并授予sudo权限
  2. 2. 安装docker
  3. 3. 安装docker-compose
  4. 4. 部署Rails app
    1. 4.1. 创建rails
    2. 4.2. dockerfile & docker-compose.yml
    3. 4.3. 启动服务
  5. 5. Troubleshooting
    1. 5.1. 启动docker container 导致主机ssh中断,并且只能通过vultr提供的网页console ssh上去.

创建用户,并授予sudo权限

1
2
useradd -d /home/robot/ -G wheel robot
passwd robot #

安装docker

1
2
3
4
5
6
7
8
9
su - robot
sudo curl -sS https://get.docker.com/ | sh # 安装的是docker-ce
# 安装完后会提示将当前用户加入到`docker`用户组
sudo usermod -aG docker robot

#将用户加入`docker`用户组将取得运行容器的权限,运行容器需要root权限,因此这意味着该用户可以获得root权限。

#允许docker开机启动
sudo systemctl enable docker

安装docker-compose

docker-compose 让你可以用.yml/.yaml文件来部署docker容器和应用,当前最新的版本是1.2.0,你可以通过这里来查看最新的版本

1
2
sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

部署Rails app

创建rails

1
2
3
4
5
6
7
8
9
10
# 创建rails 应用。可以直接在自己的机器上用rails new创建
rails new docker_demo --api --skip-bundle

# 如果没有安装ruby环境,也可以用docker的ruby镜像跑一个docker容器,在容器里面创建rails app
docker pull ruby:2.5
docker run --rm -it -v "$PWD:/app" ruby:2.5 bash # --rm 退出后删除容器

# 在docker容器中运行
gem install rails # 安装rails
cd /app && rails new docker_demo --api --skip-bundle # 新建rails app

dockerfile & docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# dockerfile

FROM ruby:2.5

WORKDIR /var/www/app
COPY Gemfile* ./
RUN gem install bundler && bundle install
COPY . .

EXPOSE 3000

CMD rails s -b 0.0.0.0

# docker-compose.yml
version: '1'

services:
docker_demo:
build: .
ports:
- "3000:3000"

启动服务

1
docker-compose up -d docker-demo

Troubleshooting

启动docker container 导致主机ssh中断,并且只能通过vultr提供的网页console ssh上去.

serverSpeeder服务造成的, 卸载’serverSpeeder’, 安装bbr

文章目录
  1. 1. 创建用户,并授予sudo权限
  2. 2. 安装docker
  3. 3. 安装docker-compose
  4. 4. 部署Rails app
    1. 4.1. 创建rails
    2. 4.2. dockerfile & docker-compose.yml
    3. 4.3. 启动服务
  5. 5. Troubleshooting
    1. 5.1. 启动docker container 导致主机ssh中断,并且只能通过vultr提供的网页console ssh上去.