Cloud Study - Docker, mysql
2021. 3. 17. 02:35ㆍWork/Cloud_Devops
728x90
반응형
-> 컨테이너에서 데이터 베이스 실행
-> mysql을 실행하고 볼륨과 네트워크에 연결, 허브에서 이미지를 가져와 로컬에서 실행
-> mysql이 docker에 있는것을 확인할 수 있다.
-> 현재 생성된 mysql의 이름값이 sysqdb라는 것을 확일 할 수 있다.
: 컨테이너 내에서 실행중인 MySQL 데이터 베이스에 연결 합니다.
-> 애플리 케이션을 데이터 베이스(DB)에 연결
import mysql.connector
import json
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Docker!'
@app.route('/widgets')
def get_widgets() :
mydb = mysql.connector.connect(
host="mysqldb",
user="root",
password="p@ssw0rd1",
database="inventory"
)
cursor = mydb.cursor()
cursor.execute("SELECT * FROM widgets")
row_headers=[x[0] for x in cursor.description]
results = cursor.fetchall()
json_data=[]
for result in results:
json_data.append(dict(zip(row_headers,result)))
cursor.close()
return json.dumps(json_data)
@app.route('/initdb')
def db_init():
mydb = mysql.connector.connect(
host="mysqldb",
user="root",
password="p@ssw0rd1"
)
cursor = mydb.cursor()
cursor.execute("DROP DATABASE IF EXISTS inventory")
cursor.execute("CREATE DATABASE inventory")
cursor.close()
mydb = mysql.connector.connect(
host="mysqldb",
user="root",
password="p@ssw0rd1",
database="inventory"
)
cursor = mydb.cursor()
cursor.execute("DROP TABLE IF EXISTS widgets")
cursor.execute("CREATE TABLE widgets (name VARCHAR(255), description VARCHAR(255))")
cursor.close()
return 'init database'
if __name__ == "__main__":
app.run(host ='0.0.0.0')
-> 변경 사항을 포함하도록 이미지를 다시 빌드
$ pip3 install mysql-connector-python
$ pip3 freeze -r requirements.txt
-> 이제 이미지를 구축할 수 있다.
$ docker build --tag python-docker .
-> 컨테이너를 데이터베이스 네트워크에 추가한 다음 컨테이너를 실행
$ docker run \
-it --rm -d \
--network mysqlnet \
--name rest-server \
-p 5000:5000 \
python-docker
-> 해당 IP를 통해 mysql 접근 가능한지 확인 할 수 있다.
-> 의심이 가서 test 사용자를 만들고 연결을 시도해 보았다.
: 잘 나오는 것을 확인 할 수 있다.
docker conatiner 삭제
-> docker rm id
docker conatiner 확인
-> docker ps
-> docker ps -a
docker images 삭제
-> docker rim id
*본 내용은 코멘토 직무 부트 캠프를 진행하면서 공부, 혹은 배용 내용들을 정리한 글입니다.
(AWS 해커톤 우승자 출신 글로벌 엔지니어와 클라우드 직무 A to Z)
728x90
반응형
'Work > Cloud_Devops' 카테고리의 다른 글
Cloud Study - AWS docker container, RDS (0) | 2021.03.23 |
---|---|
Cloud Study - DevOps (0) | 2021.03.19 |
Cloud Study - Docker, Python, Flask (0) | 2021.03.16 |
Cloud Study - Docker (0) | 2021.03.15 |
Cloud Study - AWS EC2 설치, Ubuntu (0) | 2021.03.15 |