docker实战系列之docker-compose

测试环境:腾讯云,或者是华为云,在香港地区或者非中国大陆地区的机器. 这个快速入门指南演示了如何使用Docker Compose来设置和运行一个简单的Django / PostgreSQL应用程序.python

1.安装docker

(1)安装docker的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)添加repo文件
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)安装docker,并启动
yum -y install docker-ce
systemctl start docker
复制代码

2.安装docker-compose

(1)运行下面的命令,安装稳定版的
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装不一样版本的compose ,请替换1.24.0 为要使用的compose版本
(2)对二进制文件应用可执行权限
chmod +x /usr/local/bin/docker-compose
(3)查看安装的版本信息
docker-compose --version

另外一种安装方法
pip install docker-compose
复制代码

一:定义项目组件

对于此项目,须要先建立dockerfile,python依赖项文件和dockercompose.yml文件.linux

1.建立一个目录
mkdir shijian
2.cd到shijian
3.在shijian目录中建立一个文件Dockerfile  (注意开头要大写)
vi Dockerfile

将如下内容添加到Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

保存退出
复制代码
4.在shijian目录中建立一个requirements.txt
vi requirements.txt

将如下内容添加到requirements.txt

Django>=2.0,<3.0
psycopg2>=2.7,<3.0

保存退出
复制代码

5.在shijian目录中建立docker-compose.yml ,该文件描述了构成应用程序的服务.这些服务是web服务器和数据库,描述了它们如何连接在一块儿,服务公开的端口.git

vi docker-compose.yml

将如下内容添加到文件中.

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
保存退出.
复制代码

二.建立Django项目.

1.cd到shijian目录
2.经过运行docker-compose run命令建立Django项目.

docker-compose run web django-admin startproject composeexample .

这指示Compose django-admin startproject composeexample 使用web服务的图像和配置在容器中运行。因为web图像尚不存在,所以Compose从当前目录构建它,如build: .行中所指定的docker-compose.yml。

一旦web服务形象创建,撰写运行它,并执行 django-admin startproject在容器命令。此命令指示Django建立一组表示Django项目的文件和目录。

3.若是您在Linux上运行Docker,则django-admin建立的文件由root拥有。发生这种状况是由于容器以root用户身份运行。 更改新文件的全部权。

chown -R $USER:$USER .

4.ls -l 
复制代码

三.链接数据库

1.在shijian目录中,编辑该composeexample/settings.py文件。
2.找到DATABASES 这一模块,将它替换为如下内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

保存退出

3.在shijian目录中运行docker-compose  up -d 命令
4.此时在本机浏览器输入 http://localhost:8000 就能够查看到Django欢迎页面.
复制代码
相关文章
相关标签/搜索