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

นักเทียบท่าเป็นโครงการโอเพนซอร์ซที่ปรับใช้งานแอพพลิเคชั่นอัตโนมัติภายในคอนเทนเนอร์ซอฟต์แวร์

4
ทำให้แอปพลิเคชัน Docker เขียนลงใน stdout
ฉันกำลังปรับใช้แอปพลิเคชันของบุคคลที่สามให้สอดคล้องกับคำแนะนำ 12 ปัจจัยและอย่างใดอย่างหนึ่งที่บอกว่าควรพิมพ์แอปพลิเคชันบันทึกไปยัง stdout / stderr: จากนั้นซอฟต์แวร์การจัดกลุ่มสามารถรวบรวมได้ อย่างไรก็ตามแอปพลิเคชันสามารถเขียนไปยังไฟล์หรือ syslog เท่านั้น ฉันจะพิมพ์บันทึกเหล่านี้ได้อย่างไร

9
คอนเทนเนอร์นักเทียบท่าไม่สามารถแก้ปัญหา DNS บน Ubuntu Desktop 14.04
ฉันพบปัญหากับ Docker container ของฉันบน Ubuntu 14.04 LTS นักเทียบท่าทำงานได้ดีเป็นเวลาสองวันและทันใดนั้นฉันก็สูญเสียการเชื่อมต่อเครือข่ายทั้งหมดภายในคอนเทนเนอร์ของฉัน ข้อผิดพลาดด้านล่างนี้ทำให้ฉันเชื่อว่ามันเป็นเพราะ apt-get กำลังพยายามแก้ไข DNS ผ่าน IPv6 ฉันปิดการใช้งาน IPv6 บนเครื่องโฮสต์ของฉันและยังคงลบภาพทั้งหมดดึงฐาน Ubuntu และยังพบปัญหา ฉันเปลี่ยน nameservers /etc/resolve.conf ของฉันจากเซิร์ฟเวอร์ DNS ในเครื่องของฉันเป็นเซิร์ฟเวอร์ DNS สาธารณะของ Google (8.8.8.8 และ 8.8.4.4) และยังไม่มีโชค ฉันยังตั้งค่า DNS เป็น Google ใน DOCKER_OPTS ของ / etc / default / docker และเริ่มใหม่ docker ฉันพยายามดึง coreos และ …

4
Docker Compose ควรจะดูไวยากรณ์“ เล่ม” ของรุ่น 2 อย่างไร
ด้วยDocker Compose v1.6.0 + ขณะนี้มีไวยากรณ์ไฟล์ใหม่ / เวอร์ชัน 2 สำหรับdocker-compose.ymlไฟล์ volumesรวมถึงการเปลี่ยนแปลงที่สำคัญระดับบนสุดที่แยกต่างหากชื่อ สิ่งนี้อนุญาตให้ "รวมศูนย์" คำจำกัดความของปริมาณไว้ในที่เดียว สิ่งที่ฉันพยายามทำคือตั้งชื่อโวลุ่มในนั้นและมีการอ้างอิงโวลุ่มเดียวหลายพา ธ บนโลคัลโฮสต์ดิสก์ของฉัน ต่อไปนี้เป็นตัวอย่างการโยนข้อยกเว้นTracebackที่ลงท้ายด้วย AttributeError: 'list' object has no attribute 'items' ตัวอย่างdocker-compose.yml: version: '2' services: db: image: postgres volumes: - database:/var/lib/postgres/data php: image: php-fpm:5.6 volumes: - phpconf:/etc/php/conf.d namedvolume: container_name: namedvolume build: ./Docker/Testvolume volumes: - ./Docker/Testvolume/shareme volumes: database: …

4
วิธีที่เหมาะสมเพื่อให้นักเทียบท่าเริ่มต้นเมื่อใช้สำหรับงานตามระยะเวลา
ฉันมีตัวเทียบท่าพร้อมซอฟต์แวร์ที่ติดตั้งและกำหนดค่า ไม่มีโปรแกรมใด ๆ ที่ควรจะเริ่ม / เรียกใช้ตลอดเวลา สิ่งที่ฉันต้องการ - ความสามารถในการเริ่มต้นคำสั่งบางอย่างขึ้นอยู่กับเหตุการณ์ภายนอก ชอบ: docker exec mysupercont /path/to/mycommand -bla -for และ docker exec mysupercont /path/to/myothercommand แต่เป็น "exec" เป็นไปไม่ได้เมื่อคอนเทนเนอร์หยุดทำงานและคอนเทนเนอร์นี้มีข้อมูล "ทำงาน" อยู่ภายในซึ่งใช้สำหรับคำสั่งนั้นดังนั้นฉันจึงไม่สามารถใช้ docker run ... แต่ละครั้งเพราะมันสร้างที่เก็บจากภาพและทำลายข้อมูลของฉัน อะไรคือ "สิทธิ" และ "วิธีที่ดีที่สุด" ในการเก็บรักษาตู้คอนเทนเนอร์ไว้ คำสั่งใดที่ฉันสามารถเริ่มต้นภายใน
41 docker 

5
คำสั่งหลายคำสั่งในคำสั่ง Docker CMD
ไม่เข้าใจว่าเกิดอะไรขึ้นเมื่อฉันพยายามรันคำสั่งสองคำสั่งที่รันไทม์ผ่านคำสั่ง CMD ใน `Dockerfile ฉันคิดว่ามันน่าจะใช้ได้ CMD ["/etc/init.d/nullmailer", "start", ";", "/usr/sbin/php5-fpm"] แต่มันไม่ทำงาน ตู้คอนเทนเนอร์ยังไม่เริ่ม ดังนั้นฉันต้องทำเช่นนี้: CMD ["sh", "-c", "/etc/init.d/nullmailer start ; /usr/sbin/php5-fpm"] ฉันไม่เข้าใจ ทำไมถึงเป็นอย่างนั้น? ทำไมบรรทัดแรกไม่ใช่วิธีที่ถูกต้อง? ใครช่วยอธิบายฉันถึงสิ่งเหล่านี้ "รูปแบบเชลล์ CMD เทียบกับรูปแบบ JSON และอื่น ๆ " ในคำง่าย ๆ เพิ่งจะทราบ - เดียวกันคือมีcommand:คำสั่งในdocker-compose.ymlตามที่คาดไว้
39 docker 

4
เหตุใดฉันจึงไม่สามารถซีดีไปยังไดเรกทอรีที่นักเทียบเรือทำงานได้
ฉันต้องการเรียกใช้แอปพลิเคชันจากไดเรกทอรีที่ระบุ $ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014' 2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory ไดเรกทอรีนั้นมีอยู่จริงและถ้าฉันเชื่อมต่อกับนักเทียบท่าโดยใช้ bash แบบโต้ตอบฉันสามารถเรียกใช้คำสั่งด้านบนได้ $ sudo docker run -i -t ubuntu/decomposer /bin/bash # cd /local/deploy/decomposer; ./decomposer-4-15-2014 ฉันสามารถเรียกใช้โปรแกรมของฉันโดยการระบุเส้นทางแบบเต็ม แต่ก็ล้มเหลวตามที่คาดว่าจะเปิดตัวจากไดเรกทอรีปัจจุบัน ฉันจะทำอย่างไร
39 docker 

11
ปัญหา Docker COPY -“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”
ใน Dockerfile ของฉันฉันมีคำสั่ง 'คัดลอก "ต่อไปนี้: # Copy app code COPY /srv/visitor /srv/visitor มันควรจะไปโดยไม่บอกว่าในระบบโฮสต์ของฉันภายใต้ไดเรกทอรี "/ srv / ผู้เยี่ยมชม" มีรหัสแหล่งที่มาของฉัน: [root@V12 visitor]# ls /srv/visitor/ Dockerfile package.json visitor.js ตอนนี้เมื่อฉันพยายามสร้างภาพโดยใช้ Dockerfile นี้มันค้างในขั้นตอนที่ควรจะเกิด "COPY": Step 10 : COPY /srv/visitor /srv/visitor INFO[0155] srv/visitor: no such file or directory มันบอกว่าไม่มีไดเรกทอรีดังกล่าว แต่มีอย่างชัดเจน ความคิดใด ๆ อัปเดต 1: มันชี้ให้เห็นว่าฉันเข้าใจผิดว่าฉันเข้าใจบริบทของการสร้าง ข้อเสนอแนะมีจำนวนการเปลี่ยนคำสั่ง …
36 node.js  docker 

1
ข้อดีและข้อเสียของการใช้ Windows container แทน Linux container สำหรับ Docker?
ฉันกำลังติดตั้ง Docker สำหรับ Windows (CE) บน Windows 10 และหน้าจอแรกถามฉัน: [] ใช้คอนเทนเนอร์ Windows แทนคอนเทนเนอร์ Linux (สามารถเปลี่ยนได้หลังการติดตั้ง) นี้ดูเหมือนว่าการตัดสินใจที่สำคัญยังเอกสารหาง , คำถามที่พบบ่อยและใช้ Windows ภาชนะกวดวิชาให้ข้อมูลเกี่ยวกับไม่มีเหตุผลที่ผมอาจจะเลือกหนึ่งในช่วงอื่น ๆ มันจะมีประโยชน์หากมีภาพรวมวัตถุประสงค์ของการขยายสาขาของตัวเลือกนี้: ตัวเลือกหนึ่งจะเร็วกว่าตัวเลือกอื่นหรือไม่ การตัดสินใจส่งผลกระทบต่อการใช้ทรัพยากรระบบ (RAM, CPU) หรือไม่ ฉันสามารถเรียกใช้รูปภาพเดียวกันทั้งสองประเภทได้หรือไม่ ปลอดภัยกว่าอีกอันหรือไม่? ความแตกต่างอื่น ๆ ที่อาจช่วยให้ฉันได้ข้อสรุปจะได้รับการต้อนรับอย่างมาก

3
เป็นไปได้ไหมที่จะเรียกใช้งาน Kubernetes อีกครั้ง
ฉันมีการกำหนดค่างาน Kubernetes ต่อไปนี้: --- apiVersion: batch/v1 kind: Job metadata: name: dbload creationTimestamp: spec: template: metadata: name: dbload spec: containers: - name: dbload image: sdvl3prox001:7001/pbench/tdload command: ["/opt/pbench/loadTpcdsData.sh", "qas0063", "dbc", "dbc", "1"] restartPolicy: Never imagePullSecrets: - name: pbenchregkey status: {} เมื่อฉันkubectl create -f dbload-deployment.yml --recordทำงานและสร้างพ็อดแล้ว Docker container จะทำงานจนเสร็จและได้รับสถานะนี้: $ kubectl get job …

1
จุดประสงค์ของกระบวนการ docker-proxy คืออะไร? เหตุใดจึงจำเป็นต้องใช้ proxy proxy tcp ของผู้ใช้
ฉันสังเกตว่ามีกระบวนการนักเทียบท่าพร็อกซีทำงานอยู่สำหรับพอร์ตที่เผยแพร่แต่ละพอร์ต จุดประสงค์ของกระบวนการนี้คืออะไร? เหตุใดจึงต้องใช้พร็อกซี tcp space สำหรับสิ่งนี้ $ ps -Af | grep proxy root 4776 1987 0 01:25 ? 00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 22222 -container-ip 172.17.0.2 -container-port 22 root 4829 1987 0 01:25 ? 00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 5555 -container-ip 172.17.0.3 -container-port 5555 และกฎ iptable …
34 iptables  docker 

6
อัปเดตคอนเทนเนอร์ของบริการใน Amazon ECS
วิธีใดที่แนะนำให้ใช้สำหรับการอัปเดตคอนเทนเนอร์ของบริการที่ทำงานใน Amazon ECS เอกสาร AWSกล่าวว่า: "ถ้าคุณมีการปรับปรุงภาพหางของแอพลิเคชันของคุณคุณสามารถสร้างคำนิยามของงานใหม่ที่มีภาพที่และปรับใช้ในการให้บริการของคุณหนึ่งงานในเวลา." นี่คือทุกสิ่งที่มีอยู่ในเอกสารปัจจุบัน (13 เมษายน 2558) ฉันเข้าใจถูกต้องหรือไม่ว่าทางเดียวที่จะอัปเดตแอปพลิเคชันคอนเทนเนอร์ของฉันใน Amazon ECS คือการสร้างงานใหม่จากนั้นหยุดงานเก่าและเริ่มงานใหม่ ฉันใช้แท็ก "ล่าสุด" สำเร็จแล้วด้วย Core OS & Fleetctl สิ่งนี้มีประโยชน์ที่ไม่จำเป็นต้องเปลี่ยนแท็กรูปภาพของนักเทียบท่าสำหรับการอัปเดตใหม่เนื่องจากการโหลดบริการใหม่จะเห็นการเปลี่ยนแปลงใหม่และอัปเดตคอนเทนเนอร์ (ใช้แท็กเดียวกัน "ล่าสุด") คุณใช้วิธีใดในการอัปเดตบริการของคุณด้วยอิมเมจ Docker ที่อัปเดตใน Amazon ECS

2
เมื่อสร้างจาก Dockerfile ไม่อนุญาตให้ติดตั้งแพคเกจ Debian / Ubuntu ในการติดตั้ง debconf การติดตั้งแบบไม่โต้ตอบ
ฉันได้ตั้งค่าสภาพแวดล้อมต่อไปนี้เพื่อไม่ให้มีการถามคำถาม / โต้ตอบระหว่างการติดตั้ง apt-get: ENV DEBIAN_FRONTEND noninteractive # export DEBIAN_FRONTEND="noninteractive" ซึ่งเทียบเท่ากับ: export DEBIAN_FRONTEND="noninteractive" แต่เมื่อสร้างภาพจาก Dockerfile เมื่อสิ้นสุดการติดตั้งแพ็คเกจ Debian / Ubuntu หนึ่งชุด (โดยใช้ apt-get install) การกำหนดค่าแพคเกจ debconf บอกว่า: debconf: unable to initialize frontend: Noninteractive # export DEBIAN_FRONTEND="noninteractive" debconf: (Bareword "Debconf::FrontEnd::Noninteractive" not allowed while "strict subs" in use at (eval 35) line 3, …
29 docker 

4
ไม่สามารถรับการเชื่อมต่อ D-Bus: ไม่อนุญาตให้ใช้งาน
ฉันกำลังพยายามแสดงรายการบริการบนรูปภาพ CentOS ที่ใช้งาน Docker โดยใช้ systemctl list-units แต่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: Failed to get D-Bus connection: Operation not permitted คำแนะนำใด ๆ ที่อาจเป็นปัญหา?

3
กำลังเขียนบันทึก Apache2 ไปยัง stdout / stderr?
ฉันใช้ Apache2 ในคอนเทนเนอร์ docker และต้องการเขียนอะไรลงดิสก์เขียนบันทึกไปยัง stdout และ stderr ฉันได้เห็นวิธีต่าง ๆ ในการทำเช่นนี้ ( Supervisord และ stdout / stderr , Apache access to stdout ) แต่สิ่งเหล่านี้ดูเหมือนจะเป็นแฮ็ก ไม่มีวิธีการทำเช่นนี้โดยค่าเริ่มต้น? เพื่อความชัดเจนฉันไม่ต้องการตัดบันทึกเนื่องจากจะทำให้สิ่งต่าง ๆ ถูกเขียนไปยังดิสก์ในคอนเทนเนอร์

2
วิธีการใช้ความลับของนักเทียบท่าที่ไม่มีกลุ่ม Swarm?
ขณะนี้เรากำลังใช้งานแอพพลิเคชั่นบนคอนเทนเนอร์ docker เดียวแอพพลิเคชั่นต้องการข้อมูลที่ละเอียดอ่อนทุกประเภทเพื่อส่งผ่านเป็นตัวแปรสภาพแวดล้อม ฉันวางสิ่งเหล่านั้นบนคำสั่ง run ดังนั้นพวกเขาจึงไม่ได้อยู่ในอิมเมจแล้วบนที่เก็บ แต่ฉันท้ายด้วยคำสั่ง run ที่ไม่ปลอดภัยมาก ตอนนี้ฉันเข้าใจว่าความลับของนักเทียบท่านั้นมีอยู่แล้วฉันจะใช้งานได้อย่างไรโดยไม่ต้องปรับใช้คลัสเตอร์ หรือมีวิธีอื่นในการรักษาความปลอดภัยข้อมูลนี้หรือไม่? ด้วยความเคารพ,

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