• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

안녕하세요. fastapi 강의 수강 중입니다.

23.10.14 05:56 작성 조회수 377

0

안녕하세요. fastapi 강의 수강 중입니다.

섹션2에서 데이터베이스 생성과정 중

docker exec -it todos bash를 하면

Error response from daemon: Container c77ef59c10ff05ebd5ead765aa6f64ac185daa38214ad0fc5195750cace0b167 is not running

위와 같은 에로가 나오는데요, 나름대로 구글링을 해보니까 docker start를 사용해 도커 실행을 해주면한다해서 해보면

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use

이러한 에러가 나옵니다.

docker와 mysql을 연결하는 명령어에서 다 잘 다운로드되고 마지막에

docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use.

이런 에러가 뜨긴했는데 우선 넘어가보니 docker ps를 해보면 실행중인 컨테이너가 없습니다.

 

도커를 아예 처음 접하다보니 시작단계에서 어려움이 있는데 도움 부탁드립니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. address already in use 라는 에러는 이미 3306 포트를 사용 중인 프로그램이 있다는 의미인데요. 혹시 로컬 환경에 다른 mysql이 동작 중이 아닌지 의심됩니다.

 

어떤 운영체제를 사용 중이신가요?

mjs4027님의 프로필

mjs4027

질문자

2023.10.15

감사합니다. 이전에 설치한 MariaDB랑 충돌이나 그랬었네요. 위 질문은 해결하였습니다.

다만, pip를 통해 라이브러리들을 다운로드 성공하였는데 파이썬 콘솔에서 임포트 시 ModuleNotFoundError: No module named 'pymysql'나옵니다. 인스톨이 제대로 안된거 같아 다시 인스톨 해보면 정상적으로 인스톨 되어 있는데 이 부분은 왜 그런건가요?

해결 되었다니 다행이네요!

혹시 파이썬 콘솔 재시작(Rerun)을 해주셨을까요?

라이브러리 인스톨 이후에는 파이썬 콘솔을 재시작 해주셔야 정상적으로 사용할 수 있습니다.

mjs4027님의 프로필

mjs4027

질문자

2023.10.15

네 했습니다. 왜 이럴까요...

Traceback (most recent call last):

File "/Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pydev/pydevconsole.py", line 364, in runcode

coro = func()

^^^^^^

File "<input>", line 1, in <module>

File "/Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import

module = self._system_import(name, args, *kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/jmok/Desktop/Study/fastAPI/projects/todos/src/database/connection.py", line 6, in <module>

engine = create_engine(DATABASE_URL, echo=True)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "<string>", line 2, in create_engine

File "/Users/jmok/Desktop/Study/fastAPI/projects/todos/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 281, in warned

return fn(*args, **kwargs) # type: ignore[no-any-return]

^^^^^^^^^^^^^^^^^^^

File "/Users/jmok/Desktop/Study/fastAPI/projects/todos/lib/python3.11/site-packages/sqlalchemy/engine/create.py", line 601, in create_engine

dbapi = dbapi_meth(**dbapi_args)

^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/jmok/Desktop/Study/fastAPI/projects/todos/lib/python3.11/site-packages/sqlalchemy/dialects/mysql/pymysql.py", line 75, in import_dbapi

return import("pymysql")

^^^^^^^^^^^^^^^^^^^^^

File "/Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import

module = self._system_import(name, args, *kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ModuleNotFoundError: No module named 'pymysql'

코드 상에서는 동작하는데 콘솔에서만 동작이 안 되는 상황일까요?

mjs4027님의 프로필

mjs4027

질문자

2023.10.15

네 코드상에서의 에러는 없습니다. 가상환경을부터 다시 만들어서 해보는게 좋을까요?

콘솔 재시작 말고 콘솔 자체를 껐다가 다시 켜보시겠어요?

mjs4027님의 프로필

mjs4027

질문자

2023.10.16

콘솔도 껐다 켜보고 파이참도 껐다 켜보고 했습니다ㅜㅜㅜ

그렇다면 가상환경과 라이브러리가 설치된 경로를 확인해봐야할 것 같습니다.

mjs4027님의 프로필

mjs4027

질문자

2023.10.16

경로 확인해보니 pip경로가 homebrew로 되어있네요.

이런 상황에서 문제를 해결하려면 가상환경 내에서 라이브러리를 인스톨할 때도 pip 경로를 수정해주고 설치해야되는건가요?

다시 로컬에 다운받을 때는 경로를 또 수정하고 이런식으로 인스톨 경로 수정해가면서 하는게 맞는건가요?

가상환경에 대한 이해도가 없어 드는 의문인데 가상환경은 말 그대로 로컬과 다른 가상의 환경인데 왜 로컬이랑 경로가 겹치는지 이해가 잘 가지 않아서요...ㅎㅎㅎ

이해하고 계신대로 가상환경은 프로젝트 별로 독립된 파이썬 환경입니다. 가상환경이 정상적으로 적용되었다면 별도의 경로 변경 없이 독립된 환경에 패키지가 인스톨 되어야합니다!