1.アルパインイメージをダウンロードする [root@DockerBrian ~]# docker pull alpine デフォルトタグの使用: 最新 リポジトリ docker.io/library/alpine をプルしようとしています... 最新: docker.io/library/alpine からプル 4fe2ade4980c: プル完了 ダイジェスト: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528 ステータス: docker.io/alpine:latest の新しいイメージをダウンロードしました [root@docker43 ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ docker.io/alpine-latest 196d12cf6ab1 3 週間前 4.41 MB 2. Dockerfileを書く dockerfileファイルを保存するためのscrapyディレクトリを作成する [root@DockerBrian ~]# mkdir /opt/alpineDockerfile/ [root@DockerBrian ~]# cd /opt/alpineDockerfile/ [root@DockerBrian alpineDockerfile]# mkdir scrapy && cd scrapy && touch Dockerfile [root@DockerBrian alpineDockerfile]# cd scrapy/ [root@DockerBrian scrapy]# ll 総投与量 4 -rw-r--r-- 1 ルート ルート 1394 10月10日 11:36 Dockerfile Dockerfileの作成 # 作成したベースイメージをFROM alpineで指定します # 著者説明情報 MAINTAINER alpine_python3_scrapy ([email protected]) # Alibaba Cloud ソースを置き換えます RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories && \ echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories # 時間を同期する # ソースを更新し、opensshをインストールし、設定ファイルを変更し、キーを生成して時間を同期する RUN apk update && \ apk に --no-cache openssh-server tzdata を追加 && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \ ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \ ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \ ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key && \ echo "root:h056zHJLg85oW5xh7VtSa" | chpasswd # Scrapy 依存パッケージをインストールする (必要な依存関係) apk add --no-cache python3 python3-dev gcc openssl-dev openssl libressl libc-dev linux-headers libffi-dev libxml2-dev libxml2 libxslt-dev openssh-client openssh-sftp-server を実行します。 # インストール環境には pip パッケージが必要です (ここでのパッケージは必要に応じて追加または削除できます) pip3 install --default-timeout=100 --no-cache-dir --upgrade pip setuptools pymysql pymongo redis scrapy-redis ipython Scrapy リクエストを実行します。 # ssh スクリプトを起動します RUN echo "/usr/sbin/sshd -D" >> /etc/start.sh && \ chmod +x /etc/start.sh # ポート22を開く EXPOSE 22 # ssh起動コマンドCMD ["/bin/sh","/etc/start.sh"]を実行します コンテナはSSH経由でPython3環境にインストールされたScrapyにリモートアクセスし、start.shスクリプトを通じてSSHサービスを開始することができます。 3. イメージを作成する 画像を作成する [root@DockerBrian scrapy]# docker build -t scrapy_redis_ssh:v1 。 ミラーを見る [root@DockerBrian scrapy]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ scrapy_redis_ssh v1 b2c95ef95fb9 4時間前 282 MB docker.io/alpine-latest 196d12cf6ab1 4 週間前 4.41 MB 4. コンテナを作成する コンテナを作成します(名前は scrapy10086、リモート ポートはホスト ポート 10086 にマップされます)。 次のようにコードをコピーします。 docker run -itd --restart=always --name scrapy10086 -p 10086:22 scrapy_redis_ssh:v1 コンテナを表示 [root@DockerBrian scrapy]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 7fb9e69d79f5 b2c95ef95fb9 "/bin/sh /etc/star..." 3 時間前 3 時間前 0.0.0.0:10086->22/tcp scrapy10086 コンテナにログイン [root@DockerBrian scrapy]# ssh [email protected] -p 10086 ホスト '[127.0.0.1]:10086 ([127.0.0.1]:10086)' の信頼性を確立できません。 ECDSA キーのフィンガープリントは SHA256:wC46AU6SLjHyEfQWX6d6ht9MdpGKodeMOK6/cONcpxk です。 ECDSA キーのフィンガープリントは MD5:6a:b7:31:3c:63:02:ca:74:5b:d9:68:42:08:be:22:fc です。 本当に接続を続行しますか (はい/いいえ)? はい 警告: '[127.0.0.1]:10086' (ECDSA) が既知のホストのリストに永続的に追加されました。 [email protected] のパスワード: # ここでのパスワードは dockerfile で定義されています echo "root:h056zHJLg85oW5xh7VtSa" | chpasswd アルパインへようこそ! Alpine Wikiには、大量のハウツーガイドや一般的な情報が掲載されています。 Alpine システムの管理に関する情報。 <http://wiki.alpinelinux.org> を参照してください。 次のコマンドでシステムをセットアップできます: setup-alpine /etc/motd を編集することでこのメッセージを変更できます。 7363738cc96a:~# 5. テスト スクレイピープロジェクトテストを作成する 7363738cc96a:~# スクレイピースタートプロジェクトテスト テンプレート ディレクトリ '/usr/lib/python3.6/site-packages/scrapy/templates/project' を使用する新しい Scrapy プロジェクト 'test' が次の場所に作成されました: /ルート/テスト 最初のスパイダーは次のように開始できます。 CDテスト scrapy genspider の例 example.com 7363738cc96a:~# cd テスト/ 7363738cc96a:~/テスト# ls scrapy.cfg テスト 7363738cc96a:~/テスト# cd テスト/ 7363738cc96a:~/テスト/テスト# ls __init__.py __pycache__ items.py middlewares.py pipelines.py settings.py スパイダー 7363738cc96a:~/テスト/テスト# テスト成功 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: mysql における mydumper と mysqldump の比較
目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...
私は最近、会社で統計レポートの開発に関わるプロジェクトに取り組んでいました。データの量が比較的多かっ...
以下に示すように、あなたならどのようにそれを達成しますか: 通常、フォントアイコンを使用して中央にプ...
序文ご存知のとおり、HTML5 はインターネット コミュニティ全体に標準を提供する組織である Wor...
目次通常の読み込み遅延読み込みプリロードプリロードを使用しないプリロードの使用要約する通常の読み込み...
まず init-connect を通じて mysql 接続を初期化し、次にインスタンスに接続する必要...
1. コマンドの紹介ifconfig (ネットワーク インターフェイスを構成する) コマンドは、ネッ...
目次1. コマンド2. docker-compose.yml 3. Dockerファイル4. 直接変...
この記事では、Vueで複数の画像を追加、表示、削除するための具体的なコードを参考までに紹介します。具...
目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...
Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...
スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。スタイル シートは...
別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...
jQuery 入門jQuery ライブラリは、簡単なマークアップ行を使用して Web ページに追加で...
序文最近、MySQL のインデックスについて読んでいました。結合されたインデックスを見ると、左端の原...