在Docker上进行可移植的应用程序开发
通过在Docker上构建开发环境,
可以在多台机器上进行应用程序开发和移植,
而无需关注环境的设置。
这次我在Docker容器上搭建了Python + Django的开发环境。
我将在该环境中启动Python服务器,并解释如何从主机PC的浏览器访问。
此次所创建的Docker镜像是https://hub.docker.com/r/rimacdocker/django
我们所进行的活动
我按照以下步骤在Docker上启动了用于Django开发的Web服务器。
-
- 在容器上建立Django开发环境
- 使用Django创建应用程序并启动服务器。
这是主机端的环境。
苹果操作系统10.13.1
Docker容器 18.09.2
1. 在容器上搭建Django开发环境。
首先,在Docker容器上搭建Django开发环境。
具体步骤如下。
1-1. 获取操作系统映像,启动容器
1-2. 在容器中安装所需的软件包和库
获取操作系统镜像并启动容器
本次我们将获取最新的Ubuntu映像并启动容器。
将主机上的8000端口映射到容器的8000端口,以进行端口转发并启动。
# Ubuntuイメージの取得、コンテナの起動
docker run -p 8000:8000 -it ubuntu
注意事项: 端口转发
需要通过将主机端特定的端口号与容器端特定的端口号连接起来,以便从主机端访问在容器中启动的服务器。
1-2. 安装所需的软件包和库。
在基于Ubuntu镜像启动的容器上,安装所需的软件包等。
进行Djnago开发所需的软件包和库如下。
已安装的软件包
Ubunutuパッケージ
vim
python3
python3-pip
Pyhtonライブラリ
django
在容器上执行的命令
# パッケージマネージャの最新化
apt update
apt upgrade
# Python, Pipのインストール
apt install python3
apt install python3-pip --fix-missing
# Vimのインストール
apt install vim
# Djangoのインストール
pip3 install django
使用Django创建应用程序并启动服务器。
既经过步骤1使得Django可用,那么我们现在可以创建Django应用并启动开发用的Web服务器了。具体步骤如下:
2-1. 创建Django应用程序
2-2. 启动开发用Web服务器
创建Django应用程序
使用Django命令创建应用程序。
# 任意の作業用フォルダを作成 + 移動
mkdir django
cd django
# アプリケーションの作成
django-admin.py startproject dj_sample
2-2. 启动开发用的Web服务器
我们也可以使用Django命令来进行数据库迁移和启动Web服务器。
# 作成されるアプリケーションフォルダに移動
cd dj_sample/
# データベースマイグレーションの実行
python3 manage.py migrate
# 開発用Webサーバーの起動
python3 manage.py runserver 0:8000
执行该命令将启动服务器,
在浏览器中访问http://127.0.0.1:8000,
即可显示Django的示例页面。
补充说明:数据库迁移
这是一个功能,可自动创建和管理在Django中使用的数据库定义。
通过这个功能,您可以不直接编写SQL语句,而是能够对数据库进行修改。
运行上述命令时,按照Django中的数据库定义生成对数据库的SQL语句。
补充说明:使用以下命令,开启服务器在本地的8000端口运行。
补足:
运行服务器指令:runserver 0:8000
一般来说,为了使通过Django在本地机器上启动的服务器可以从外部可见,需要将IP地址绑定到任意端口。
这次我们将容器化的服务器与本地机器关联起来,使其可以通过0.0.0.0的所有IP地址在8000端口进行访问。
在这里,绑定的端口需要与1-1中指定的端口转发设置相匹配,即需要与容器的端口号相同。
执行结果
在容器上运行Django。
root@86XXXXXXXXXX:~/django/dj_sample# python3 manage.py runserver 0:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
June 03, 2019 - 19:10:40
Django version 2.2.1, using settings 'dj_sample.settings'
Starting development server at http://0:8000/
Quit the server with CONTROL-C.

总结
通过在Docker上构建应用程序开发环境,
可以在具有不同操作系统和中间件的多台电脑上
以相同的环境进行开发。
另外,只需安装Docker,即可确保应用程序在与开发环境相同的环境中进行运行。
也有可能应用开发进展顺利。