docker-compose作为没有互联网的生产环境

时间:2018-11-29 06:23:13

标签: docker docker-compose

我是docker的初学者,我创建了一个docker-compose文件,该文件可以提供我们的生产环境,并且我想将其用于生产环境的客户端服务器,也想在本地使用且没有Internet。 现在,我有docker和docker的二进制文件,它们构成并保存了要加载到没有Internet的服务器上的图像。这是我在Linux上的init bash脚本:

#!/bin/sh -e

#docker
tar xzvf docker-18.09.0.tgz
sudo cp docker/* /usr/bin/
sudo dockerd &

#docker-compose
cp docker-compose-Linux-x86_64 /ussr/local/bin/docker-compose
chmod +x /ussr/local/bin/docker-compose

#load images
docker load --input images.tar

我的结构:

  • 代码/ *
  • nginx /
    • site.conf
    • 日志/
  • phpfpm /
  • postgres /
    • 数据/
    • custom.ini
  • .env
  • docker-compose.yml

docker-compose文件:

version: '3'

services:
  web:
    image: nginx:1.15.6
    ports:
      - "8080:80"
    volumes:
      - ./code:/code
      - ./nginx/site.conf:/etc/nginx/conf.d/default.conf
      - ./nginx/logs:/var/log/nginx
    restart: always
    depends_on:
      - php
  php:
    build: ./phpfpm
    restart: always
    volumes:
      - ./phpfpm/custom.ini:/opt/bitnami/php/etc/conf.d/custom.ini
      - ./code:/code
  db:
    image: postgres:10.1
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
    ports:
      - 5400:5432

有一些问题:

  • 为什么docker在Linux服务中不存在?但是当我通过apt-get安装docker时,它进入Linux服务列表。如何将docker设置为服务并启用它以在启动时加载?
  • 如何在系统启动时将docker-compose设置为在Linux服务中运行?

2 个答案:

答案 0 :(得分:0)

  1. 我认为dockerd正在创建守护程序,但是您必须启用它。

    $ sudo systemctl启用docker

  2. restart: always添加到您的数据库容器中。 How the docker restart policies work

答案 1 :(得分:0)

使用软件包sudo dpkg -i /path/to/package.deb安装docker,可以从https://download.docker.com/linux/ubuntu/dists/下载。

然后执行安装后的sudo systemctl enable docker。这将在系统启动时启动docker,结合您先前的restart: always组合将自动重新启动。