1. Laden Sie das Alpenbild herunter [root@DockerBrian ~]# docker pull alpine Standard-Tag verwenden: latest Es wird versucht, das Repository docker.io/library/alpine abzurufen ... aktuell: Abrufen von docker.io/library/alpine 4fe2ade4980c: Ziehen abgeschlossen Digest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528 Status: Neueres Image für docker.io/alpine:latest heruntergeladen [root@docker43 ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE docker.io/alpine-latest 196d12cf6ab1 vor 3 Wochen 4,41 MB 2. Dockerfile schreiben Erstellen Sie ein Scrapy-Verzeichnis zum Speichern der Dockerfile-Datei [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 Gesamtdosis 4 -rw-r--r-- 1 root root 1394 10. Okt. 11:36 Dockerfile Schreiben einer Docker-Datei # Geben Sie das erstellte Basis-Image von Alpine an # Informationen zur Autorenbeschreibung MAINTAINER alpine_python3_scrapy ([email protected]) # Ersetzen Sie die Alibaba Cloud-Quelle 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 # Zeit synchronisieren # Quelle aktualisieren, OpenSSH installieren, Konfigurationsdatei ändern, Schlüssel generieren und Zeit synchronisieren RUN apk update && \ apk add --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-Abhängigkeitspakete installieren (erforderliche Abhängigkeiten) RUN 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 # Die Installationsumgebung erfordert Pip-Pakete (Pakete können hier nach Bedarf hinzugefügt oder gelöscht werden) RUN pip3 install --default-timeout=100 --no-cache-dir --upgrade pip setuptools pymysql pymongo redis scrapy-redis ipython Scrapy-Anfragen # Starten Sie das SSH-Skript RUN echo "/usr/sbin/sshd -D" >> /etc/start.sh && \ chmod +x /etc/start.sh # Port 22 öffnen EXPOSE 22 # Führen Sie den SSH-Startbefehl CMD ["/bin/sh","/etc/start.sh"] aus. Der Container kann über SSH remote auf in der Python3-Umgebung installiertes Scrapy zugreifen und den SSH-Dienst über das Skript start.sh starten. 3. Erstellen Sie ein Bild Erstellen eines Images [root@DockerBrian scrapy]# docker build -t scrapy_redis_ssh:v1 . Spiegel anzeigen [root@DockerBrian scrapy]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE scrapy_redis_ssh v1 b2c95ef95fb9 vor 4 Stunden 282 MB docker.io/alpine-latest 196d12cf6ab1 vor 4 Wochen 4,41 MB 4. Erstellen Sie einen Container Erstellen Sie einen Container (mit dem Namen scrapy10086, der Remote-Port wird dem Host-Port 10086 zugeordnet) Kopieren Sie den Code wie folgt: docker run -itd --restart=always --name scrapy10086 -p 10086:22 scrapy_redis_ssh:v1 Container anzeigen [root@DockerBrian scrapy]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 7fb9e69d79f5 b2c95ef95fb9 "/bin/sh /etc/star..." vor 3 Stunden Vor 3 Stunden 0.0.0.0:10086->22/tcp scrapy10086 Beim Container anmelden [root@DockerBrian scrapy]# ssh [email protected] -p 10086 Die Authentizität des Hosts '[127.0.0.1]:10086 ([127.0.0.1]:10086)' kann nicht festgestellt werden. Der ECDSA-Schlüsselfingerabdruck ist SHA256:wC46AU6SLjHyEfQWX6d6ht9MdpGKodeMOK6/cONcpxk. Der ECDSA-Schlüsselfingerabdruck lautet MD5:6a:b7:31:3c:63:02:ca:74:5b:d9:68:42:08:be:22:fc. Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)? ja Warnung: „[127.0.0.1]:10086“ (ECDSA) wurde dauerhaft zur Liste der bekannten Hosts hinzugefügt. [email protected]'s Passwort: # Das Passwort ist hier im Dockerfile echo "root:h056zHJLg85oW5xh7VtSa" | chpasswd definiert Willkommen bei Alpine! Das Alpine Wiki enthält eine große Anzahl von Anleitungen und allgemeinen Informationen zur Administration von Alpine-Systemen. Siehe <http://wiki.alpinelinux.org>. Sie können das System mit dem Befehl einrichten: setup-alpine Sie können diese Nachricht ändern, indem Sie /etc/motd bearbeiten. 7363738cc96a:~# 5. Testen Erstellen Sie einen Scrapy-Projekttest 7363738cc96a:~# Scrapy Startprojekttest Neues Scrapy-Projekt „Test“, unter Verwendung des Vorlagenverzeichnisses „/usr/lib/python3.6/site-packages/scrapy/templates/project“, erstellt in: /Wurzel/Test Sie können Ihre erste Spinne wie folgt starten: CD-Test Scrapy Genspider Beispiel example.com 7363738cc96a:~# cd test/ 7363738cc96a:~/test# ls scrapy.cfg-Test 7363738cc96a:~/test# cd test/ 7363738cc96a:~/test/test# ls __init__.py __pycache__ items.py middlewares.py pipelines.py einstellungen.py spiders 7363738cc96a:~/test/test# Testerfolg Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Vergleich von mydumper und mysqldump in MySQL
>>: Einige Fallstricke beim JavaScript Deep Copy
Wenn Sie Schaltflächen (Eingabe, Schaltfläche) sch...
Einführung in Struktur und Leistung HTML-Struktur...
1. Befehlseinführung Mit dem Datumsbefehl wird di...
Zu den MySQL-Variablen zählen Systemvariablen und...
Schauen wir uns zunächst meinen Fehlercode an. ht...
Vorwort Das Konzept des Dunkelmodus stammt ursprü...
Starten Sie die virtuelle Centos8-Maschine und dr...
1. Laden Sie das Ubuntu16.04-Image und den entspr...
Netzwerktyp nach der Docker-Installation [root@in...
Ab heute werde ich regelmäßig kleine Wissenspunkte...
Inhaltsverzeichnis Einführung in gespeicherte Pro...
Vorwort Bezüglich der HugePages- und Oracle-Daten...
1. Übergeordnete Komponenten können Props verwend...
Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...