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

นักเทียบท่าเป็นเครื่องมือในการสร้างและเรียกใช้ภาชนะบรรจุ คำถามเกี่ยวกับนักเทียบท่าการปฏิบัติการและสถาปัตยกรรมเป็นที่ยอมรับ คำถามเกี่ยวกับการใช้งานนักเทียบท่าในการผลิตอาจพบการตอบสนองที่ดีขึ้นใน ServerFault (https://serverfault.com/) แท็กนักเทียบท่าไม่ค่อยได้ใช้คนเดียวและมักจะจับคู่กับแท็กอื่น ๆ เช่นนักแต่งและนักแต่งเพลง

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

16
นักเทียบท่า postgres การเชื่อมต่อท้องถิ่น pgadmin
ฉันสร้างอิมเมจอูบุนตูด้วย nginx, php และ postgres ฉันต้องการเชื่อมต่อฐานข้อมูล postgres ในภาพปัจจุบันของฉันกับที่pgadminอยู่ในเครื่องของฉัน ฉันได้ลองใช้ docker inspector เพื่อพยายามใช้ image ip เพื่อเชื่อมต่อกับ pgadmin ในพื้นที่ของฉัน แต่ไม่ประสบความสำเร็จมากนัก ฉันได้ลองกำหนดค่าพอร์ตบางพอร์ตบนโลคัลเพื่อให้การเชื่อมต่อทำงานได้

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 …

30
นักเทียบท่าไม่สามารถเริ่มบน windows ได้
การดำเนินการdocker versionส่งคืนผลลัพธ์ต่อไปนี้ C:\Projects> docker version Client: Version: 1.13.0-dev API version: 1.25 Go version: go1.7.3 Git commit: d8d3314 Built: Tue Nov 1 03:05:34 2016 OS/Arch: windows/amd64 error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/version: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must …

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: …


1
นักเทียบท่า ENV เทียบกับการส่งออก RUN
สมมติว่าฉันต้องการรวมคำสั่งเหล่านี้ RUN command_1 ENV FOO bar RUN command_2 เป็น RUN command_1 && export FOO=bar && command_2 และสงสัยว่าการตั้งค่าตัวแปรด้วยRUN exportvs ENVเทียบเท่ากันหรือไม่ กล่าวอีกนัยหนึ่งคำสั่งเหล่านี้ใน Dockerfile แตกต่างกันหรือไม่? ENV FOO bar เทียบกับ RUN export FOO=bar
95 docker 

3
set -e และ exec“ $ @” ทำอะไรสำหรับสคริปต์จุดเริ่มต้นของนักเทียบท่า
ฉันสังเกตเห็นว่าสคริปต์ entrypoint.sh จำนวนมากสำหรับนักเทียบท่าทำสิ่งนี้: #!/bin/bash set -e ... code ... exec "$@" คืออะไรset -eและมีexec "$@"ไว้เพื่ออะไร?
95 shell  docker 

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 …

8
ไม่สามารถสร้าง Dockerfile เฉพาะได้
ฉันสามารถสร้าง Dockerfile เช่น docker build -t deepak/ruby . แต่สำหรับ Dockerfile ที่ไม่มีชื่อ Dockerfile # DOCKER-VERSION 0.4.8 FROM deepak/ruby MAINTAINER Deepak Kannan "deepak@example.com" RUN ./bin/rails s ให้เราบอกว่ามันถูกเรียกว่าDockerfile.app เราสร้างด้วย docker build -t deepak/app Dockerfile.app จากนั้นฉันได้รับข้อผิดพลาด Uploading context 0 bytes Error build: EOF EOF
95 docker 

4
จะลบวอลุ่มนักเทียบท่าทั้งหมดได้อย่างไร?
ถ้าฉันทำdocker volume lsรายการไดรฟ์ข้อมูลของฉันจะเป็นดังนี้: DRIVER VOLUME NAME local 305eda2bfd9618266093921031e6e341cf3811f2ad2b75dd7af5376d037a566a local 226197f60c92df08a7a5643f5e94b37947c56bdd4b532d4ee10d4cf21b27b319 ... ... local 209efa69f1679224ab6b2e7dc0d9ec204e3628a1635fa3410c44a4af3056c301 และฉันต้องการลบไดรฟ์ข้อมูลทั้งหมดพร้อมกัน ฉันจะทำมันได้อย่างไร?
94 docker 

1
การคัดลอกไฟล์ไปยังคอนเทนเนอร์ด้วย Docker Compose
ฉันมีDockerfileที่ที่ฉันคัดลอกไดเร็กทอรีที่มีอยู่ (พร้อมเนื้อหา) ไปยังคอนเทนเนอร์ซึ่งใช้งานได้ดี: Dockerfile FROM php:7.0-apache COPY Frontend/ /var/www/html/aw3somevideo/ COPY Frontend/ /var/www/html/ RUN ls -al /var/www/html RUN chown -R www-data:www-data /var/www/html RUN chmod -R 755 /var/www/html แต่เมื่อฉันใช้docker-compose.ymlไฟล์มีเพียงไดเร็กทอรีaw3somevideoและภายในaw3somevideoไม่มีอะไรเลย นักเทียบท่า - compose.yml : php: build: php/ volumes: - ./Frontend/ :/var/www/html/ - ./Frontend/index.php :/var/www/html/ ports: - 8100:80 บางทีฉันอาจไม่เข้าใจการทำงานของvolumesและในกรณีนี้โปรดบอกวิธีคัดลอกไฟล์ที่มีอยู่ไปยังคอนเทนเนอร์ผ่านdocker-compose.ymlไฟล์

8
Docker Compose ให้คอนเทนเนอร์ทำงานต่อไป
ฉันต้องการเริ่มบริการด้วย Docker-compose และทำให้คอนเทนเนอร์ทำงานต่อไปเพื่อที่ฉันจะได้รับที่อยู่ IP ผ่าน 'นักเทียบท่าตรวจสอบ' อย่างไรก็ตามคอนเทนเนอร์มักจะออกทันทีหลังจากเริ่มต้นระบบ ฉันพยายามเพิ่ม "command: [" sleep "," 60 "]" และอื่น ๆ ใน docker-compose.yml แต่เมื่อใดก็ตามที่ฉันเพิ่มบรรทัดด้วย "command: ... " ฉันไม่สามารถเรียก "docker-compose up" ได้ เนื่องจากฉันจะได้รับข้อความ "ไม่สามารถเริ่มคอนเทนเนอร์ ..... ข้อผิดพลาดของระบบ: อักขระที่ไม่ถูกต้อง 'k' กำลังมองหาจุดเริ่มต้นของค่า" ฉันยังลองเพิ่ม "CMD sleep 60" และไม่มีอะไรใน Dockerfile แต่ดูเหมือนว่าคำสั่งเหล่านี้จะไม่ถูกเรียกใช้ มีวิธีง่ายๆในการทำให้คอนเทนเนอร์คงอยู่หรือแก้ปัญหาอย่างใดอย่างหนึ่งของฉันได้หรือไม่? แก้ไข: นี่คือไฟล์เขียนที่ฉันต้องการเรียกใช้: version: '2' services: my-test: image: ubuntu command: …

9
กำลังใช้รูปภาพโดยคอนเทนเนอร์ที่หยุด
ฉันกำลังพยายามลบคอนเทนเนอร์นักเทียบท่าด้วยคำสั่งนี้: docker rmi <Image-Id> เห็นได้ชัดว่าฉันได้แทนที่ Image-Id ด้วย Id ที่ฉันใช้: docker images แต่ฉันเห็นข้อผิดพลาดด้านล่าง: Error response from daemon: conflict: unable to delete <Image-ID> (must be forced) - image is being used by stopped container xxxxxxxxxxx

20
Docker Error bind: แอดเดรสถูกใช้งานแล้ว
เมื่อฉันรันdocker-compose upในโปรเจ็กต์ Docker มันจะขึ้นข้อความต่อไปนี้: Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: address already in use netstat -pna | grep 3000 แสดงสิ่งนี้: tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN - ฉันพยายามแล้วdocker-compose downแต่ก็ไม่ได้ผล

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