คำถามติดแท็ก docker-compose

การเขียนเป็นเครื่องมือสำหรับการกำหนดและเรียกใช้แอพพลิเคชั่นที่ซับซ้อนด้วย Docker ด้วย Compose คุณกำหนดแอปพลิเคชั่นที่มีหลายคอนเทนเนอร์ในไฟล์เดียวจากนั้นหมุนแอปพลิเคชันของคุณในคำสั่งเดียวซึ่งทำทุกอย่างที่ต้องทำเพื่อให้แอปพลิเคชันทำงานได้

7
คุณดำเนินการย้ายฐานข้อมูล Django อย่างไรเมื่อใช้ Docker-Compose
ฉันได้ตั้งค่าแอปหาง Django / PostgreSQL อย่างใกล้ชิดต่อไปนี้คำแนะนำ Django Quick Start บนเว็บไซต์เทียบท่า ครั้งแรกที่ฉันเรียกใช้ Manage.py migrate ของ Django โดยใช้คำสั่งsudo docker-compose run web python manage.py migrateมันทำงานได้ตามที่คาดไว้ ฐานข้อมูลถูกสร้างขึ้นภายในคอนเทนเนอร์ Docker PostgreSQL ได้ดี การเปลี่ยนแปลงที่เกิดขึ้นกับแอป Django เองก็สะท้อนให้เห็นในคอนเทนเนอร์ Docker Django เช่นเดียวกันในขณะที่ฉันบันทึก มันยอดมาก! แต่ถ้าฉันเปลี่ยนโมเดลใน Django และพยายามอัปเดตฐานข้อมูล Postgres ให้ตรงกับโมเดลจะไม่มีการตรวจพบการเปลี่ยนแปลงดังนั้นจึงไม่มีการย้ายข้อมูลไม่ว่าฉันจะเรียกใช้กี่ครั้งmakemigrationsหรือmigrateอีกครั้ง โดยทั่วไปทุกครั้งที่ฉันเปลี่ยนโมเดล Django ฉันต้องลบคอนเทนเนอร์ Docker (โดยใช้sudo docker-compose rm) และเริ่มต้นใหม่ด้วยการย้ายข้อมูลใหม่ ฉันยังคงพยายามเอาหัวของฉันไปรอบ ๆ Docker และมีหลายอย่างที่แย่มากที่ฉันไม่เข้าใจเกี่ยวกับวิธีการทำงาน แต่สิ่งนี้ทำให้ฉันรู้สึกแย่ …

5
วิธีใดเป็นวิธีที่ดีที่สุดในการส่งข้อมูลรับรอง AWS ไปยัง Docker container
ฉันใช้งาน Docker-container บน Amazon EC2 ขณะนี้ฉันได้เพิ่ม AWS Credentials ไปยัง Dockerfile แล้ว โปรดแจ้งให้เราทราบวิธีที่ดีที่สุดในการดำเนินการนี้ได้ไหม

5
นักเทียบท่าเขียนเรียกใช้คอนเทนเนอร์ใน net: host
ฉันต้องการวางไข่ 3 บริการในเน็ต "โฮสต์" โดยใช้ Docker-compose นี่คือไฟล์ docker-compose.yml ของฉัน: version: '2' services: mysql: image: mysql net: "host" nginx: image: nginx net: "host" app: image: tomcat net: "host" ฉันได้รับข้อผิดพลาดต่อไปนี้: $ docker-compose up [31mERROR[0m: Validation failed in file '.\docker-compose.yml', reason(s): Unsupported config option for services.app: 'net' Unsupported config option for services.mysql: 'net' …

4
นักเทียบท่าเขียนสร้างคอนเทนเนอร์เดียว
การใช้ Compose ถ้าฉันเรียกใช้docker-compose buildมันจะสร้างคอนเทนเนอร์ทั้งหมดขึ้นมาใหม่: > docker-compose build Building elasticsearch Step 1 : FROM elasticsearch:2.1 ---> a05cc7ed3f32 Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic ---> Using cache ---> ec07bbdb8a18 Successfully built ec07bbdb8a18 Building search Step 1 : FROM php:5.5.28-fpm ---> fcd24d1058c0 ... แม้ว่าจะสร้างใหม่โดยใช้แคช แต่ก็ต้องใช้เวลา ดังนั้นคำถามของฉันคือ: มีวิธีสร้างคอนเทนเนอร์เฉพาะขึ้นมาใหม่หรือไม่?

7
วิธีเชื่อมโยงคอนเทนเนอร์ php-fpm และ Nginx Docker อย่างถูกต้อง?
ฉันกำลังพยายามเชื่อมโยง 2 คอนเทนเนอร์แยกกัน: nginx: ล่าสุด php: fpm ปัญหาคือสคริปต์ php ไม่ทำงาน บางทีการกำหนดค่า php-fpm ไม่ถูกต้อง นี่คือรหัสแหล่งที่มาซึ่งอยู่ในของฉันพื้นที่เก็บข้อมูล นี่คือไฟล์docker-compose.yml: nginx: build: . ports: - "80:80" - "443:443" volumes: - ./:/var/www/test/ links: - fpm fpm: image: php:fpm ports: - "9000:9000" และDockerfileสิ่งที่ฉันใช้ในการสร้างอิมเมจที่กำหนดเองตาม nginx one: FROM nginx # Change Nginx config here... RUN rm /etc/nginx/conf.d/default.conf ADD ./default.conf …

1
Docker-Compose ที่มีหลาย servises
นี่เป็นคำถามตัวอย่าง! ไม่เคยทำในการผลิต เรียกใช้บริการ NGINX / PHP / อื่น ๆ ในตู้คอนเทนเนอร์แยกกัน! เมื่อฉันเริ่มdocker-compose upคอนเทนเนอร์ Ubuntu ออกด้วยubuntu exited with code 0ไฟล์. เมื่อฉันวิ่งdocker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntuทุกอย่างทำงานได้ดี ฉันจะจำลองพฤติกรรมนี้โดยใช้ Docker Compose ได้อย่างไร นี่คือของฉันDockerfile: # Version: 0.0.1 FROM ubuntu:15.04 ENV DEBIAN_FRONTEND noninteractive #INSTALL ALL RUN apt-get update && apt-get install -y \ …

3
ไม่สามารถเชื่อมโยงไปยังคอนเทนเนอร์ที่กำลังทำงานซึ่งเริ่มต้นโดยนักเทียบท่าเขียน
ฉันกำลังตั้งค่าสภาพแวดล้อมการพัฒนาท้องถิ่นของฉันด้วยคอนเทนเนอร์นักเทียบท่า docker-compose.yml ดังต่อไปนี้ version: '2' services: db: image: mongo:3 mq: image: rabbitmq:3 api: build: . image: my_app/api ports: - "3000:3000" links: - db - mq environment: - NODE_ENV=development เริ่มต้นโดยไม่มีข้อผิดพลาด และนักเทียบท่าแสดง 3 คอนเทนเนอร์ที่กำลังทำงานอยู่ docker-compose up -d docker ps e90e5a8b5d33 my_app/api "/usr/local/bin/node " 0.0.0.0:3000->3000/tcp my_app_api_1 42bfcd971b16 mongo:3 "/entrypoint.sh mongo" 27017/tcp my_app_db_1 a0685a816c47 …

11
ปลอดภัยหรือไม่ที่จะทำความสะอาดนักเทียบท่า / โอเวอร์เลย์ 2 /
ฉันมีคอนเทนเนอร์นักเทียบท่าที่ทำงานบน AWS EC2 โฟลเดอร์ / var / lib / docker / overlay2 มีขนาดดิสก์เติบโตเร็วมาก ฉันสงสัยว่าการลบเนื้อหานั้นปลอดภัยหรือไม่? หรือถ้านักเทียบท่ามีคำสั่งบางอย่างเพื่อเพิ่มการใช้งานดิสก์บางอย่าง อัพเดท: ฉันได้ลองdocker system prune -aแล้วซึ่งเรียกคืน 0Kb นอกจากนี้ขนาดดิสก์ / docker / overlay2 ของฉันยังใหญ่กว่าเอาต์พุตจากไฟล์ docker system df หลังจากอ่านเอกสารนักเทียบท่าและคำตอบของ BMitch ฉันเชื่อว่าเป็นความคิดที่โง่เขลาที่จะแตะโฟลเดอร์นี้และฉันจะลองวิธีอื่นในการเรียกคืนพื้นที่ดิสก์ของฉัน

17
Docker Networking - nginx: ไม่พบโฮสต์ [Emerg] ในอัปสตรีม
ฉันเพิ่งเริ่มย้ายไปยังคุณสมบัติระบบเครือข่ายของ Docker 1.9 และ Docker-Compose 1.5 เพื่อแทนที่โดยใช้ลิงก์ จนถึงตอนนี้การเชื่อมโยงไม่มีปัญหากับ nginx ที่เชื่อมต่อกับเซิร์ฟเวอร์ fastcgi php5-fpm ของฉันที่อยู่ในเซิร์ฟเวอร์อื่นในกลุ่มเดียวผ่านทางนักเทียบท่า ใหม่แม้ว่าเมื่อฉันรันdocker-compose --x-networking upphp-fpm คอนเทนเนอร์ mongo และ nginx จะบูตขึ้นมา แต่ nginx จะออกทันทีด้วย[emerg] 1#1: host not found in upstream "waapi_php_1" in /etc/nginx/conf.d/default.conf:16 อย่างไรก็ตามหากฉันเรียกใช้คำสั่ง docker-compose อีกครั้งในขณะที่ php และ mongo container กำลังทำงานอยู่ (nginx ออก) nginx จะเริ่มทำงานและทำงานได้ดีนับจากนั้นเป็นต้นไป นี่คือdocker-compose.ymlไฟล์ของฉัน: nginx: image: nginx ports: …

2
เริ่มเขียนนักเทียบท่า“ ข้อผิดพลาด: ไม่มีคอนเทนเนอร์ให้เริ่ม”
ฉันกำลังพยายามใช้ Docker Compose (กับ Docker Machine บน Windows) เพื่อเปิดใช้งานกลุ่มคอนเทนเนอร์ Docker docker-compose.yml ของฉัน: version: '2' services: postgres: build: ./postgres environment: - POSTGRES_PASSWORD=mysecretpassword frontend: build: ./frontend ports: - "4567:4567" depends_on: - postgres backend: build: ./backend ports: - "5000:5000" depends_on: - postgres docker-compose buildทำงานได้สำเร็จ เมื่อฉันเรียกใช้docker-compose startฉันจะได้รับผลลัพธ์ต่อไปนี้: Starting postgres ... done Starting frontend ... …

2
ฉันจะหลบหนีเครื่องหมายดอลลาร์ในไฟล์นักเทียบท่าได้อย่างไร
ฉันมีสเกลาร์ YAML ที่ทำให้เกิดข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามประเมินdocker-compose.ymlไฟล์ของฉัน: ข้อผิดพลาด: รูปแบบการแก้ไขไม่ถูกต้องสำหรับตัวเลือก "สภาพแวดล้อม" ในบริการ "time_service": "$ {Time.now}" YAML: --- version: '2' services: time_service: build: "." environment: TIME: "${Time.now}" ฉันจะรักษาเอาท์พุทสตริงเดียวกันตามที่เขียนไว้ได้อย่างไร แต่หลีกเลี่ยงไม่ให้นักเทียบท่าเขียนตีความว่าเป็นการแก้ไขสตริงที่ผิดพลาด

4
วิธีดูเอาต์พุตบันทึกโดยใช้การเรียกใช้นักเทียบท่า
เมื่อฉันใช้docker-compose upฉันสามารถดูบันทึกของคอนเทนเนอร์ทั้งหมดในไฟล์docker-compose.ymlไฟล์ อย่างไรก็ตามเมื่อฉันใช้docker-compose run appฉันเห็นเฉพาะเอาต์พุตคอนโซลสำหรับappแต่ไม่มีบริการใดที่appขึ้นอยู่กับ จะดูเอาต์พุตบันทึกสำหรับบริการอื่น ๆ ได้อย่างไร

9
Docker-compose ตรวจสอบว่าการเชื่อมต่อ mysql พร้อมหรือไม่
ฉันพยายามตรวจสอบให้แน่ใจว่าที่เก็บแอปของฉันไม่ได้เรียกใช้การโยกย้าย / เริ่มต้นจนกว่าคอนเทนเนอร์ db จะเริ่มทำงานและพร้อมที่จะยอมรับการเชื่อมต่อ ดังนั้นฉันจึงตัดสินใจใช้ healthcheck และขึ้นอยู่กับ option ใน docker compose file v2.0 ในแอพฉันมีสิ่งต่อไปนี้ app: ... depends_on: db: condition: service_healthy ในทางกลับกันฐานข้อมูลมีการตรวจสุขภาพดังต่อไปนี้ db: ... healthcheck: test: TEST_GOES_HERE timeout: 20s retries: 10 ฉันได้ลองสองวิธีเช่น: ตรวจสอบให้แน่ใจว่าได้สร้าง db DIR แล้ว test: ["CMD", "test -f var/lib/mysql/db"] รับเวอร์ชัน mysql: test: ["CMD", "echo 'SELECT version();'| mysql"] Ping …

2
จัดเตรียม IP แบบคงที่ให้กับคอนเทนเนอร์นักเทียบท่าผ่านนักเทียบท่า
ฉันกำลังพยายามระบุที่อยู่ IP แบบคงที่ให้กับคอนเทนเนอร์ ฉันเข้าใจว่าฉันต้องสร้างเครือข่ายที่กำหนดเอง ฉันสร้างมันขึ้นมาและอินเทอร์เฟซบริดจ์อยู่บนเครื่องโฮสต์ (Ubuntu 16.x) คอนเทนเนอร์รับ IP จากซับเน็ตนี้ แต่ไม่ใช่แบบคงที่ที่ฉันระบุ นี่คือ docker-compose.yml ของฉัน: version: '2' services: mysql: container_name: mysql image: mysql:latest restart: always environment: - MYSQL_ROOT_PASSWORD=root ports: - "3306:3306" networks: - vpcbr apigw-tomcat: container_name: apigw-tomcat build: tomcat/. ports: - "8080:8080" - "8009:8009" networks: - vpcbr depends_on: - mysql networks: …

5
ไม่สามารถใช้ Docker - ระบบปฏิบัติการอิมเมจ "windows" บนแพลตฟอร์มนี้
ฉันลองสิ่งนี้บนเครื่อง Windows 10 ของฉัน: Dockerfile: From microsoft/nanoserver CMD ["echo", "Hello World"] ปล C:\FSD\Docker\Trial1> docker build -t lea/leatest . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM microsoft/nanoserver latest: Pulling from microsoft/nanoserver bce2fbc256ea: Pulling fs layer 58f68fa0ceda: Pulling fs layer image operating system "windows" cannot be used on …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.