ミッションの詳細
ノートブックのコンピューティング能力には限界があるため、Python プロジェクトをサーバーにデプロイする必要があります。
たくさんの情報を参考にし、数え切れないほどの落とし穴を踏んだ結果、皆さんのお役に立てればと思い、今日はその一部始終を記録させていただきます。
構成要件
- デプロイする必要がある Python プロジェクト
- 仮想マシン/Linux
- ドッカーのインストール
- サーバポート
大まかな流れ
1.Dockerパッケージ化
プロジェクトの最終的な構造は次のとおりです。
docker_test
っていつ── Dockerfile って
いつ── pythonproject
│││ └── tset.py
│││ └── その他の設定ファイル
└── 要件.txt
要件.txt を生成する
main.py ディレクトリに cd する
か、pycharm のターミナルで直接実行します。
pipenv lock --requirements > requirements.txt
//或者
pip freeze >> requirements.txt
要件ファイルを取得する
dockFileの書き込み
linus直下に書くことを推奨
# 将官方 Python 运行时用作父镜像
FROM python:3.8.2
# 将工作目录设置为 /pythonproject
WORKDIR ./pythonproject
# 将当前目录内容复制到位于 /pythonproject 中的容器中
ADD . .
# 安装 requirements.txt 中指定的任何所需软件包
RUN pip install -r requirements.txt
# 在容器启动时运行 tset.py
CMD ["python3", "./pythonproject/tset.py"]
ミラーの生成
Linux で、Dockerfile ファイルに cd します。
docker build -t cowsay .
详细信息:
docker build -t imagename Dockerfilepath
# imagename:镜像名称,自定义
# Dockerfilepath:Dockerfile 所在文件夹名称,当前名录为 “.”
ミラーを生成する
docker build -t imagename Dockerfilepath
ミラーを実行します
docker run --rm cowsay
--rm : 跑完就删除(因为有时候container比较占空间)
ここでは、いくつかの docker コマンドの概要を示します。
docker image ls でイメージを一覧表示します
docker ps でコンテナー (実行中) を一覧表示します (-a を追加してすべてを一覧表示できます)
docker rm コンテナー ID コンテナーの削除
docker rmi ImageID イメージの削除
docker exec -it コンテナー ID bash に容器
IMAGE.tar の生成 (イメージのパッケージ化)
docker save f660ca2347c0 > image.tar
//输出镜像文件到tar文件中
660ca2347c0是Image的ID号,可以通过 docker image ls 查看
ここまでで、IMAGE.tar を取得しました
。次に、それをサーバーにアップロードして実行します。
2. サーバー部分
ファイルの転送 (非 SSH)
scp IMAGE.tar hostname@服务器地址: path
ログインサーバー
ssh 账号@服务器地址
docker ロード tar ファイル
docker image load <IMAGE.tar
ドッカーラン!(もうすぐ終わりです!)
解凍後、docker イメージが表示されます。その後、docker run オペレーションを通常どおり実行してください。
(まだコマンドを投稿して見てください)
docker run --rm cowsay
//cowsay只是一个自定义名字
docker runを参照できます