我想運行2個碼頭容器使用docker-compose並將mysql容器連接到應用程序container.Mysql容器正在運行,但應用容器未能以錯誤啓動錯誤:2003:Can not連接到'127.0.0.1:3306'(111連接被拒絕)上的MySQL服務器 好像我的應用程序容器正試圖連接我的主機mysql而不是mysql容器。Docker撰寫mysql連接失敗
泊塢窗,compose.yml
version: '2'
services:
mysql:
image: mysql:5.7
container_name: database
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: malicious
MYSQL_USER: root
MYSQL_PASSWORD: root
app:
build: .
restart: unless-stopped
volumes:
- .:/Docker_compose_app #app directory
depends_on:
- "mysql"
command: [ "python", "database_update.py"]
restart: unless-restart
environment:
# Environment variables to configure the app on startup.
MYSQL_DATABASE: malicious
MYSQL_HOST: database
Dockerfile
FROM python:2.7
ADD . /Docker_compose_app
WORKDIR /Docker_compose_app
RUN apt-get update
RUN pip install --requirement requirement.txt
這是我database_update.py文件。
def create_TB(cursor,connection):
query = '''CREATE TABLE {}(malicious VARCHAR(100) NOT NULL)'''.format("url_lookup")
cursor.execute(query)
connection.commit()
def connection():
try:
cnx = mysql.connector.connect(user="root",password = 'root',database=malicious)
cursor = cnx.cursor()
create_TB(cursor,cnx)
except mysql.connector.errors.Error as err:
data = {"There is an issue in connection to DB":"Error: {}".format(err)}
也許mysql需要一些時間來啓動?嘗試睡眠10-30秒,然後開始從您的應用程序連接 – dmitryvim
但它不會解決問題,因爲即使在MySQL容器啓動後,應用程序容器仍然會給出相同的錯誤。我使用了restrat:除非 - 使用應用程序容器重新啓動 – guri