--Construire un environnement Python à l'aide de Docker sur EC2 d'AWS
--EC2 de l'environnement ci-dessus est configuré à partir de votre compte
Partiellement extrait de cette zone et rempli.
--Connectez-vous à l'instance EC2 --Mettre à jour les packages et le cache de packages installés sur l'instance
$ sudo yum update -y
--Installez le dernier package Docker Community Edition
$ sudo amazon-linux-extras install docker
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
Succès si la version est affichée
$ sudo service docker start
--Ajoutez ec2-user au groupe docker et omettez sudo à saisir dans les futures commandes
$ sudo usermod -a -G docker ec2-user
$ docker info
--Enregistrer un compte sur Docker Hub - https://hub.docker.com/
--Créer un référentiel
--Connexion à Docker Hub avec EC2
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:nom du compte
Password:mot de passe
Login Succeeded
--Créez un Dockerfile.
$ touch Dockerfile
--Modifier le contenu avec vim
$ vim Dockerfile
--Cette fois, créez un conteneur d'image contenant un package pour le fonctionnement automatique de python3 et du navigateur.
Dockerfile
FROM python:3
USER root
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
#Installer divers packages
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade beautifulsoup4
RUN pip install --upgrade chromedriver
RUN pip install --upgrade chromedriver-binary
RUN pip install --upgrade datetime
RUN pip install --upgrade pandas
RUN pip install --upgrade pyyaml
RUN pip install --upgrade requests
RUN pip install --upgrade selenium
Copiez ce qui précède: Enregistrer sous wq
Ensuite, créez docker-compose.yml
touch docker-compose.yml
--Cela modifie également le contenu avec vim.
vim docker-compose.yml
docker-compose.yml
version: '3'
services:
python3:
restart: always
build: .
container_name: 'scrayping'
working_dir: '/root/'
tty: true
volumes:
- ./opt:/root/opt
--Créez une image basée sur le contenu de docker-compose.yml
$ docker-compose build -t {nom du compte dockerhub/Nom de l'image}
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
shunsukenashiki/scrayping latest ed6df28c956e About an hour ago 1.15GB
C'est bon si c'est fait comme ça
--Créez un conteneur basé sur l'image Docker créée --La raison de l'ajout de "-d" est que le conteneur ne démarrera pas en arrière-plan sans -d.
$ docker run -d --name #{Tout nom de conteneur} -d -it {Nom du REPOSITORY}
--Vérifiez si le conteneur a été créé et démarré. Si vous pouvez le créer, vous avez terminé
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b42460c71e9c shunsukenashiki/scrayping "python3" 5 seconds ago Up 4 seconds scrayping
--Exécuter le conteneur créé
$ docker exec -it #{Tout nom de conteneur} bash
--Complet si la version spécifiée est incluse dans le Dockerfile
$ pip3 list
Package Version
--------------- ---------
beautifulsoup4 4.9.1
certifi 2020.6.20
chardet 3.0.4
chromedriver 2.24.1
DateTime 4.3
idna 2.10
numpy 1.19.1
pandas 1.1.0
pip 20.2.1
python-dateutil 2.8.1
pytz 2020.1
requests 2.24.0
selenium 3.141.0
setuptools 49.2.1
six 1.15.0
soupsieve 2.0.1
urllib3 1.25.10
wheel 0.34.2
zope.interface 5.1.0
$ docker push shunsukenashiki/{nom du compte dockerhub/Nom de l'image}:latest