2022-11-28-TIL
๐ ์ค๋ ๊ณต๋ถํ ๋ด์ฉโ
- python ์ปดํ๋ฆฌํจ์
- ํ์ด์ฌ ๋ฌธ๋ฒ ์ค ๊ฐ์ฅ ์ดํด ์๊ฐ๋ ๋ฌธ๋ฒ. ์ด๊ฒ ์ ๋ง ๊ฐ๋ ์ฑ์ด ์ข์ ๋ฌธ๋ฒ์ธ๊ฐ ๋ผ๋ ์๊ฐ์ด ๋ค์๋ ๋ฌธ๋ฒ
- ๋์ ๋๋ฆฌ ์ปดํ๋ฆฌํจ์
๋์ปคโ
- ๋จ์ํ ์ฑ ์ ํ๋ฆฌ์ผ์ด์
- ํ์ด์ฌ ํ๋ผ์คํฌ
๋ฐฐํฌ๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น?
- ํ์ด์ฌ ์์กด์ฑ
- ์ฑ ์ ํ๋ฆฌ์ผ์ด์ ์์กด์ฑ
- ํ๋ผ์คํฌ ๋ช ๋ น์ด ๋ฑ
์๋ ๋ฐฐํฌโ
docker run -it ubuntu bash
- ์ฐ๋ถํฌ ์ด๋ฏธ์ง bash ๋ช ๋ น์ด ํฐ๋ฏธ๋ ์ ๋ ฅ๊ฐ์ ์ทจํ๊ธฐ
$ apt-get update
$ apt-get install -y python
$ apt-get install python-pip
$ pip install flask
$ cat > /opt/app.py
$ FLASK_APP=app.py flask run --host=0.0.0.0
- ์ฑ ์ ํ๋ฆฌ์ผ์ด์ ์คํ
๋์ปคํ ํ๊ธฐโ
- ๋ฉ๋ชจ์ฅ์ ์ผ์ ์คํํ๋ ์ ์ฐจ๋ค์ ์ ๋ถ ์ ๊ธฐ
apt-get update
apt-get install -y python3
apt-get install python3-pip
pip install flask
Create/Copy application code to /opt/app.py
FLASK_APP=/opt/app.py flask run --host=0.0.0.0
mkdir my-simple-webapp
cd my-simple-webapp
cat > Dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get install -y python3 python3-pip
RUN pip install flask
COPY app.py /opt/app.py
ENTRYPOINT FLASK_APP=/opt/app.py flask run --host=0.0.0.0
- dockerfile
cat > app.py
import os
from flask import Flask
app = Flask(__name__)
@app.route("/")
def main():
return "Welcome!"
@app.route('/how-are-you')
def hello():
return 'I am good, how about you?'
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
- app.py ๋ณต์ฌ
docker build .
- docker build ํ๊ธฐ
docker build . -t my-simple-webapp
- -t ํ๊ทธ๋ฅผ ์ด์ฉํด ์ด๋ฏธ์ง์ ์ด๋ฆ ๋ถ์ด๊ธฐ
- ๋์ปค๋ ๋ชจ๋ ๊ณ์ธต์ ์บ์์ ์ ์ฅํ๋ค. ํ๋ฒ ์คํํ๋ฉด ๋ค์ ์คํ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค๋ฉด ๋น ๋ฅด๋ค.
docker images
docker run my-simple-webapp
- ํฌํธ ๋งคํ ํ๋ฉด ๋๋ค.
docker push my-simple-webapp
- ๋์ปค ํ๋ธ์ ์ฌ๋ฆฌ๊ธฐ
- ๊ณ์ ๋ช ์ ์๋ถ์ด๋ฉด ์์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง์ ๊ณ์ ๋ช ๊น์ง ๋ถ์ฌ์ผ๋จ
docker build . -t jihunheo/my-simple-webapp
docker push jihunheo/my-simple-webapp
- ๋์ปค ์ด๋ฏธ์ง ํธ์์ ๊ฒฝ์ฐ ๋ช
๋ น์ด๋ง ํธ์ ๋๋ค๊ณ ์๊ฐํ๋๋ฐ.. ์ด๋ฏธ์ง ์์ฒด๋ฅผ ์ ๋ถ (๋จ๊ณ๋ณ) ?? ํธ์ ํ๋ ๊ฒ ์ฒ๋ผ ๋ณด์.
- ์ฉ๋์ด ์๊ฐ๋ณด๋ค ํฌ๋ค.
- ๊ฐ๊ฐ์ ์คํญ๋ณ ์ด๋ฏธ์ง๋ฅผ ์ ๋ถ๋ค ํธ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
- ๊ทธ ์์ ์ ๋ํ ์ด๋ฏธ์ง๊ฐ ๊ทธ๋ฅ ํต์ง๋ก ์ฌ๋ผ๊ฐ๋ ๊ตฌ์กฐ๋ก ๋ณด์ธ๋ค??