# Запускаем контейнер с Питоном
> docker run -it --rm -d python
# Получаем его имя
> docker ps -a
inspiring_sammet
#Перемещаем файл в запущенный контейнер
> docker cp ./temp.txt inspiring_sammet:/temp.txt
Скачиваем его обратно под новым именованием
>docker cp inspiring_sammet:/temp.txt ./downloaded.txt
FROM python:alpine3.9
WORKDIR /datas
COPY ./main.py /data_folder
VOLUME ["/datas"]
CMD ["python", "main.py"]
data = input('Напишите что-нибудь: ')
with open('data.txt', 'a', encoding='utf-8') as file:
print(data, file=file)
with open('data.txt', 'r', encoding='utf-8') as file:
print(file.read())
# Формируем образ с именем «data»
> docker build . -t data
# Запускаем его в интерактивном режиме
> docker run -it data
Напишите что-нибудь: 555
# Узнаем его имя
> docker ps -a
silly_feistel
# Повторно стартуем контейнер
> docker start -i silly_feistel
Напишите что-нибудь: 111
555
111
# Создаем именованный том
> docker volume create my_data
# Проверяем его наличие
> docker volume ls
DRIVER VOLUME NAME
local my_data
# Формируем образ «data»
> docker build . -t data
# Запускаем контейнер с автоматическим удалением после работы
> docker run -it --rm -v my_data:/data_folder data
Напишите что-нибудь: поле
поле
# Еще раз активируем контейнер (он будет носить другое имя) из того же образа
> docker run -it --rm -v my_data:/data_folder data
Напишите что-нибудь: золотое
поле
золотое
Осуществляем монтирование
> docker run -it --rm -v "C:/Users/Mik/Desktop/pyProject/data.txt:/datas/data.txt" data
> Напишите что-нибудь: 123
123
> docker run -it --rm -v "C:/Users/Mik/Desktop/pyProject/data.txt:/datas/data.txt" data
> Напишите что-нибудь: 321
123
505
321
from datetime import datetime
now_date = datetime.now()
your_birth = (int(num) for num in input('Введите свою дату рождения в формате "ГОД МЕСЯЦ ДЕНЬ": ').split())
birth_date = datetime(*your_birth)
days = now_date - birth_date
if days.days >= 0:
print(f'С момента вашего рождения прошло дней: {days.days}')
else:
print(f'Оказывается, вы еще не родились!')
FROM python:alpine3.9
WORKDIR /days
COPY ./main.py /days
CMD ["python", "main.py"]
> docker build . -t my_days
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_days latest b0383074de33 18 minutes ago 98.5MB
> docker run -it --rm my_days
> Введите свою дату рождения в формате "ГОД МЕСЯЦ ДЕНЬ": 1933 12 19
С момента вашего рождения прошло дней: 31923
> docker login
> Username:
> Password:
Login Succeeded
> docker logout
Removing login credentials for https://index.docker.io/v1/
> docker tag my_days:latest doсker_tester/my_days
> docker images
doсker_tester/my_days latest b0383074de33 54 minutes ago 98.5MB
> docker push doсker_tester/my_days
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def count_visits():
return cache.incr('visits')
@app.route('/')
def greet():
return f'Привет! Это твой визит номер {count_visits()}'
click==8.0.0
colorama==0.4.4
Flask==2.0.0
itsdangerous==2.0.0
Jinja2==3.0.0
MarkupSafe==2.0.0
redis==3.5.3
Werkzeug==2.0.0
FROM python:alpine3.9
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
version: "3.8"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"
> docker-compose up
Creating network "pyproject_default" with the default driver
Building web