docker run --name apa000ex2 -d -p 8080:80 httpd
PS C:\docker\httpd> docker exec -it apa000ex2 /bin/bash
root@378cc0216d09:/usr/local/apache2# pwd
/usr/local/apache2
root@378cc0216d09:/usr/local/apache2# ls
bin build cgi-bin conf error htdocs icons include logs modules
root@378cc0216d09:/usr/local/apache2# cd htdocs
root@378cc0216d09:/usr/local/apache2/htdocs# ls
index.html
root@378cc0216d09:/usr/local/apache2/htdocs# pwd
/usr/local/apache2/htdocs
root@378cc0216d09:/usr/local/apache2/htdocs# exit
exit
PS C:\docker\httpd> docker cp apa000ex2:/usr/local/apache2/htdocs/index.html index.html
PS C:\docker\httpd> dir
디렉터리: C:\docker\httpd
Mode LastWriteTime Length Name
-a---- 2007-06-12 오전 3:53 45 index.html
-a---- 2007-06-12 오전 3:53 45 index.htmldir
Visual Studio Code들어가서 docker/httpd에 index.html 파일에
아파치 웹 서버> head>입력하고 저장
PS C:\docker\httpd> docker cp index.html apa000ex2:/usr/local/apache2/htdocs/index.html
브라우저에 localhost:8080
hub.docker.com/_/python/tags에 python:3.9.16
docker pull python:3.9.16
PS C:\docker\httpd> cd ..
PS C:\docker> mkdir python
PS C:\docker> cd .\python\
PS C:\docker\python> dir
PS C:\docker\python> docker ps
docker run --name pythonex01 python
PS C:\docker\python> docker build -t hellopython:v1 .
PS C:\docker\python> docker image inspect hellopython:v1
PS C:\docker\python> docker run hellopython:v1
dockerfile에
-# 이미지 파일 (파이썬 이미지 파일)
FROM python
-# 이미지 안에서 작업 폴더 (cd 명령어라고 생각하면 됨)
WORKDIR /root
-# 이미지 파일을 생성하면서 이미지 파일 안으로 복사할 파일 설정
ADD hellopython.py .
-# 이미지 파일 안에서 실행할 내용
CMD ["python3", "hellopython.py"]
docker run hellopython:v1
python에 01폴더 만들고 calculator.py 파일생성
#!/usr/bin/python3
print("-" 10, "계산기", "-" 5)
x = 10
y = 20
print(f'두 수의 덧셈은 = {x + y}')
print(f'두 수의 뺄셈은 = {x - y}')
print(f'두 수의 나눗셈은 = {x / y}')
print(f'두 수의 곱셈은 = {x * y}')
입력하고 저장
Dockerfile 만들고
FROM python
WORKDIR /home/python
ADD calculator.py .
CMD ["python3", "calculator.py"]
입력하고 저장
PS C:\docker> cd .\python\01
PS C:\docker\python\01> docker build -t py-calculator:v1.0 .
docker run py-calculator:v1.0
docker pull python:3.9.16-slim
문제 1) 폴더 02를 만들고 Dockerfile파일을 생성한 후 1 ~ 10까지의 합을 출력하는 파이썬 프로그램을 작성하고
도커 이미지를 사용하여 실행하시오
파이썬 파일명 : one2ten.py
dockerfile 만들고
FROM python:3.9.16-slim
WORKDIR /home/python
ADD one2ten.py .
CMD ["python3", "one2ten.py"]
입력하고 저장
calculator.py 만들고
#!/usr/bin/python3
print("-" 10, "계산기", "-" 5)
x = 1
sum = 0
while x < 11:
sum = sum + x
x = x+1
print(sum)
입력하고 저장
docker build -t one2ten:v1 .
docker run one2ten:v1
==========================
구구단
Dockerfile
FROM python:3.9.16-slim
WORKDIR /home/python
ADD gugudan.py .
CMD ["python3", "gugudan.py"]
gugudan.py
print("-" 10, "구구단", "-" 5)
for x in range(2, 10):
print("------- [" + str(x) + "단] -------")
for y in range(1, 10):
print(x, "X", y, "=", x*y)
docker build -t gugudan:v1 .
docker run gugudan:v1
==================
test
Dockerfile
FROM python:3.9.16-slim
WORKDIR /home/python
ADD test.py .
CMD ["python3", "test.py", "10", "100"]
test.py
import sys
print("-" 10, "input 테스트", "-" 5)
x = sys.argv[1]
x = int(x)
y = sys.argv[2]
y = int(y)
print(f'두 수의 합 : {x+y}')
docker build -t test:v1 .
docker run test:v1
=========================================
if
Dockerfile
FROM python:3.9.16-slim
WORKDIR /home/python
ADD if.py .
CMD ["python3", "if.py", "80"]
-# RUN : 이미지 내에서 쉘 커맨드를 실행하는 것처럼 동작, 특정 소프트웨어를 설치 시 주로 사용
-# ENTRYPOINT : 항상 실행되어야 하는 커맨드를 입력 시 사용
-# CMD : 디폴트로 실행할 커맨드나 ENTRYPOINT 명령문으로 지정된 커맨드에 파라미터를 지정할 때 사용
if.py
import sys
print("-" 10, "if문 사용하기", "-" 5)
score = sys.argv[1]
score = int(score)
level = 'F'
if score > 90:
level = 'A'
elif score > 80:
level = 'B'
elif score > 70:
level = 'C'
elif score > 60:
level = 'D'
else:
level = 'F'
print(f'당신의 점수는 {score}, 등급은 {level}')
docker build -t if:v1 .
docker run if:v1
===========================
function
Dockerfile
FROM python:3.9.16-slim
WORKDIR /home/python
ADD function.py .
CMD ["python3", "function.py"]
function.py
print("-" 10, "함수 사용하기", "-" 5)
def sum():
x = 10
y = 20
print(f'두 수의 덧셈은 : {x + y}')
def sub(x, y):
print(f'두 수의 뺄셈은 : {x - y}')
def multi():
x = 10
y = 20
result = x * y
return result
def div(x, y):
result = x / y
return result
sum()
sub()
multi()
div()
docker build -t function:v1 .
docker run function:v1
====================================
파일 읽기
Dockerfile
FROM python:3.9.16-slim
WORKDIR /home/python
COPY test.txt .
ADD readfile.py .
CMD ["python3", "readfile.py"]
-# ADD : host 환경의 파일을 대상 컨테이너 이미지 안으로 복사, 복사하려는 대상 파일이 압축 파일일 경우 해당 파일의 압축을 해제하여 복사, wget 등을 통해서 원격지원 파일을 복사 대상으로 지정할 수 있음
-# COPY : host 환경의 파일또는 디렉토리를 대상 컨테이너 이미지 안으로 복사
text.txt - 읽을 파일 생성
라인1
라인2
라인3
라인4
라인5
라인6
라인7
라인8
라인9
라인10
readfile.py
print("-" 10, "파일 읽기", "-" 5)
f = open('test.txt', 'r', encoding='utf-8')
script = f.read()
print('\n' + '파일 내용 : ' + '\n' + script)
f.close()
PS C:\docker\python\07> C:\Anaconda3\python readfile.py
docker build -t readfile:v1 .
docker run readfile:v1
===========================================
문제 8) 폴더 08을 만들고 일반 텍스트 파일 info.txt 파일의 내용을 읽어서 화면에 출력하는 파이썬
프로그램을 작성하고 도커 이미지로 생성하여 컨테이너를 실행하세요
===========================================
Dockerfile
FROM python:3.9.16-slim
WORKDIR /app
COPY write.py .
CMD ["python3", "write.py"]
share.txt
아무것도 안하고 한달 놀기
오토바이 전국 일주
제주도 오토바이 여행
스노우보드 배우기
다이어트
write.py
print("-" 5, "파일 쓰기", "-" 5)
f = None
data_list = ['아무것도 안하고 한달 놀기', '오토바이 전국 일주', '제주도 오토바이 여행', '스노우보드 배우기', '다이어트']
try:
f = open('share.txt', 'w', encoding='utf-8')
for item in data_list:
f.write(item + '\n')
except:
print('파일 쓰기 중 오류가 발생했습니다.')
finally:
if f != None:
f.close()
print("-" 5, "파일 쓰기완료", "-" 5)
PS C:\docker\python> cd 10
PS C:\docker\python\10> docker volume create py-vol 10
PS C:\docker\python\10> docker volume create py-vol10
PS C:\docker\python\10> docker volume inspect py-vol10
c:\Anaconda3\python.exe ./write.py
docker build -t py-test10:v1.0 .
docker run --name py-test10_ver1.0 -v py-vol10:/app py-test10:v1.0