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

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

2
วิธีลดขนาดภาพ Docker
ฉันมีคอนเทนเนอร์ที่ใช้งาน GlassFish เมื่อฉันลองส่งรูปมันก็กลายเป็น 14GB ต่อมาฉันลบ/tmp/ในคอนเทนเนอร์ซึ่งมีขนาด 10GB และพยายามที่จะส่งรูปภาพ แต่ยังคงเป็นรูปภาพที่ 14GB ดูเหมือนว่าการลบไฟล์ออกจากคอนเทนเนอร์จะไม่ส่งผลต่อขนาดภาพ ฉันจะแก้ไขปัญหานี้ได้อย่างไร
12 docker 

1
อนุญาตให้คอนเทนเนอร์ Docker เชื่อมต่อกับไคลเอนต์ OpenVPN บนอินเตอร์เฟสช่องสัญญาณโฮสต์
ฉันมีการตั้งค่าต่อไปนี้: โฮสต์ CentOS กำลังเรียกใช้บริการนักเทียบท่า เครือข่ายบริดจ์นักเทียบท่าที่ผู้ใช้กำหนด 2 คอนเทนเนอร์นักเทียบท่าที่เชื่อมต่อกับเครือข่ายบริดจ์ที่ผู้ใช้กำหนด การติดตั้ง OpenVPN (กำลังทำงานบนโฮสต์ขณะนี้สามารถเรียกใช้ในคอนเทนเนอร์นักเทียบท่า) ไคลเอ็นต์บางตัวเชื่อมต่อกับ OpenVPN ฉันจะอนุญาตให้คอนเทนเนอร์นักเทียบท่าบนเครือข่ายสะพานนักเทียบท่าสื่อสารกับลูกค้า openvpn ในเครือข่าย tun0 ได้อย่างไร ฉันต้องการให้สามารถสื่อสารด้วย tcp ระหว่าง docker1 (10.10.0.3) และไคลเอนต์ที่เชื่อมต่อกับ vpn (ช่วง 172.19.0.x) อย่างโปร่งใส ฉันต้องตั้งค่าอะไรบนฝั่งนักเทียบท่า (ระบบเครือข่าย / iptables / ... ) และบนโฮสต์ (iptables?)
12 openvpn  docker 

1
การใช้เครือข่ายทางกายภาพส่วนตัวด้วยโหมด Docker Swarm
ฉันกำลังทำงานกับการตั้งค่าการผลิตด้วย Docker ในโหมดจับกลุ่ม (ใช้ Docker 17.03.1-ce) จะมีศูนย์ข้อมูล 2 แห่งที่เกี่ยวข้อง ในศูนย์ข้อมูลทั้งสองเครื่องทุกเครื่องมี IP สาธารณะและ IP ส่วนตัว (ภายในศูนย์ข้อมูล) บนเครือข่ายส่วนตัวดังนั้นจะมี 2 เครือข่ายส่วนตัว การรับส่งข้อมูลเครือข่ายผ่านอินเทอร์เฟซเครือข่ายส่วนตัวไม่เสียค่าใช้จ่ายในขณะที่การรับส่งข้อมูลผ่านส่วนต่อประสานสาธารณะไม่ได้อยู่ในขีด จำกัด (และช้าลง) ดังนั้นถ้าเป็นไปได้ ตอนนี้จากสิ่งที่ฉันเข้าใจ (ฉันคิดว่า) การรับส่งข้อมูลทั้งหมดระหว่างโหนดนักเทียบท่าในโหมดจับกลุ่มจะต้องผ่านอินเตอร์เฟซเครือข่ายเดียวกับที่ใช้สำหรับการสื่อสารกับผู้ชำนาญการจับกลุ่มซึ่งในกรณีของฉันจะต้องเป็นสาธารณะ เป็นไปได้ ทราฟฟิกส่วนใหญ่คาดว่าจะอยู่ระหว่างโหนดใน DC เดียวกันและมันจะดีมากถ้านักเทียบท่าสามารถกำหนดเส้นทางทราฟฟิกผ่านเครือข่ายส่วนตัวของฉันถ้าโหนดต้นทางและโหนดเป้าหมายเกิดขึ้นบนเครือข่ายส่วนตัวเดียวกัน ฉันเกรงว่าสิ่งนี้อาจไม่สามารถทำได้นอกกรอบเพราะผู้ชำนาญการไม่รู้เรื่องเครือข่ายส่วนตัวเหล่านี้และ IP ที่โหนดมีอยู่ ทางออกหนึ่งที่ฉันคิดได้ก็คือการตั้งค่า VPN และปรับใช้ฝูงที่ด้านบนของสิ่งนั้น แต่มันเพิ่มความซับซ้อนมากขึ้นและฉันต้องการโซลูชัน Docker Swarm ที่แท้จริง อัปเดต : ตามที่แนะนำในความคิดเห็นพื้นฐานสำหรับการแก้ปัญหาอาจใช้ iptables เพื่อกำหนดเส้นทางทราฟฟิกขาออกไปยัง IP ส่วนตัวแทนที่จะเป็นสาธารณะ อย่างไรก็ตามหากฉันต้องการทำสิ่งนี้ปัญหาต่อไปของฉันคือวิธีจัดการกฎเหล่านี้ทั้งหมด ด้วย 10 เซิร์ฟเวอร์ใน …

2
Chrome ใต้ Docker: CAP_SYS_ADMIN กับสิทธิ์พิเศษหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน10 เดือนที่ผ่านมา ฉันกำลังเรียกใช้ chromedriver + chrome ภายใน Docker ในสภาพแวดล้อมการทดสอบของฉัน ทุกอย่างทำงานได้ดีจนกระทั่ง CoreOS อัพเกรดล่าสุด เหล่านี้เป็นรุ่นที่ดูเหมือนจะใช้งานได้: VERSION=1185.5.0 VERSION_ID=1185.5.0 BUILD_ID=2016-12-07-0937 และนี่เป็นเวอร์ชั่นใหม่ที่ทำให้โครเมี่ยมเป็น Coredump: VERSION=1235.4.0 VERSION_ID=1235.4.0 BUILD_ID=2017-01-04-0450 เมื่อดูการเปลี่ยนแปลงดูเหมือนว่านักเทียบท่าได้รับการอัปเกรดจาก 1.11.x เป็น 1.12.x ซึ่งทำให้การsetns()โทรภายในคอนเทนเนอร์เสียหาย setns()Chrome ใช้เพื่อสร้างเนมสเปซ นี่คือตัวอย่างผลลัพธ์: jsosic-coreos-test-20161207 ~ # docker --version Docker version 1.11.2, build bac3bae จากภายในคอนเทนเนอร์หนึ่งกล่องบนกล่องนี้: [root@2939f21ecfaa /]# /opt/google/chrome/google-chrome [57:57:0107/015130:ERROR:browser_main_loop.cc(261)] Gtk: …

3
นักเทียบท่าอัลไพน์และ matplotlib
ฉันกำลังพยายามลดขนาดรูปภาพนักเทียบท่าของเราโดยใช้อัลไพน์: FROM python:2.7-alpine อย่างไรก็ตามฉันมีปัญหาในการติดตั้ง pipplotlib.h: EOF warning: no previously-included files matching '*.pyo' found anywhere in distribution warning: no previously-included files matching '*.pyd' found anywhere in distribution numpy/core/src/multiarray/numpyos.c:18:21: fatal error: xlocale.h: No such file or directory compilation terminated. numpy/core/src/multiarray/numpyos.c:18:21: fatal error: xlocale.h: No such file or directory compilation terminated. Traceback (most …
11 python  docker 

2
การจัดการข้อมูลรับรองความปลอดภัย IAM สำหรับคอนเทนเนอร์หลายตัวเทียบท่า
ภายในสภาพแวดล้อม EC2 ธรรมดาการจัดการการเข้าถึงทรัพยากร AWS อื่น ๆ นั้นค่อนข้างตรงไปตรงมากับบทบาทและข้อมูลประจำตัวของ IAM (ดึงมาจากข้อมูลเมตาของอินสแตนซ์โดยอัตโนมัติ) ง่ายยิ่งขึ้นด้วย CloudFormation ซึ่งคุณสามารถสร้างบทบาทได้ทันทีเมื่อคุณกำหนดบทบาทแอปพลิเคชันเฉพาะให้กับอินสแตนซ์ ถ้าฉันต้องการย้ายไปยัง Docker และมีการปรับใช้ M-to-N ซึ่งฉันมีเครื่อง M และแอปพลิเคชัน N ที่ทำงานอยู่ฉันควรจะ จำกัด การเข้าถึงทรัพยากร AWS ต่อแอปพลิเคชันอย่างไร ทุกคนบนโฮสต์สามารถเข้าถึงข้อมูลเมตาของอินสแตนซ์ได้ดังนั้นฉันจึงมีทุกแอปพลิเคชันที่สามารถดู / แก้ไขข้อมูลของแอปพลิเคชันอื่น ๆ ในสภาพแวดล้อมการปรับใช้เดียวกัน แนวปฏิบัติที่ดีที่สุดสำหรับการจัดหาข้อมูลรับรองความปลอดภัยให้กับคอนเทนเนอร์ของแอปพลิเคชันที่ทำงานในสภาพแวดล้อมดังกล่าวคืออะไร

5
Docker - ปรับ nginx และ php-fpm แยกกัน
ฉันได้เล่นกับนักเทียบท่าและนักเทียบท่าเขียนและมีคำถาม ปัจจุบันนักเทียบท่าของฉัน-compose.yml มีลักษณะเช่นนี้: app: image: myname/php-app volumes: - /var/www environment: <SYMFONY_ENVIRONMENT>: dev web: image: myname/nginx ports: - 80 links: - app volumes_from: - app แอพมี php-fpm ที่พอร์ต 9000 และรหัสแอปพลิเคชันของฉัน เว็บคือ nginx ที่มีการตั้งค่าบิตน้อย ฟังก์ชั่นนี้เป็นไปตามที่ฉันคาดหวังอย่างไรก็ตามเพื่อเชื่อมต่อ nginx กับ php-fpm ฉันมีบรรทัดนี้: fastcgi_pass app:9000; ฉันจะขยายขนาดนี้ได้อย่างมีประสิทธิภาพได้อย่างไร ตัวอย่างเช่นถ้าฉันต้องการให้มีหนึ่ง nginx container ที่ทำงานอยู่ แต่สาม app container ที่ใช้งานอยู่ผมจะมีอินสแตนซ์ php-fpm สามตัวที่พยายามฟังบนพอร์ต …
11 nginx  php  php-fpm  docker 

2
นักเทียบท่า daemon ตอบ '404 ไม่พบหน้า' หลังจากอัพเดท
ฉันเพิ่งอัปเดตนักเทียบท่าจาก 1.4 เป็น 1.5 (พร้อมแพ็คเกจlxc_docker) ตั้งแต่นั้นมา docker daemon ส่งข้อผิดพลาดเช่นนี้ (สำหรับทุกคำสั่ง): $ docker version Client version: 1.5.0 Client API version: 1.17 Go version (client): go1.4.1 Git commit (client): a8a31ef OS/Arch (client): linux/amd64 FATA[0000] Error response from daemon: 404 page not found แต่ถ้าฉันใช้ไคลเอนต์รุ่นก่อนหน้าฉันจะได้คำตอบที่ดี: $ /usr/bin/docker-old version Client version: 1.4.0 Client API version: …

1
แสดงรายการคอนเทนเนอร์จากโหนดทั้งหมดของโหมด docker swarm
เรากำลังเรียกใช้นักเทียบท่าในโหมด Swarm ในสองสามโหนด ไม่พบวิธีที่ง่ายและรวดเร็วในการแสดงรายการคอนเทนเนอร์ทั้งหมด (ควรมีสถานะ) ในกลุ่มจากโหนดผู้จัดการ เราสามารถเห็นเครือข่ายโอเวอร์เลย์และคอนเทนเนอร์ที่รันในเครื่องที่เชื่อมต่อกับเครือข่ายเหล่านี้รวมถึงบริการ - แต่ไม่ใช่รายละเอียดของคอนเทนเนอร์ ฯลฯ มีบางอย่างพร้อมใช้งานหรือใช้ REST API เป็นตัวเลือกที่ใช้ได้หรือไม่ (ไม่แน่ใจว่ามีข้อมูลที่จำเป็นทั้งหมดหรือไม่)

3
ฉันจะตั้งรหัสผ่านรูทในคอนเทนเนอร์นักเทียบท่าจากสคริปต์ได้อย่างไร
ฉันมีสคริปต์ที่ทำงานบนโฮสต์และสร้าง / start / stop container docker ฉันต้องการให้สคริปต์เปลี่ยนรหัสผ่านของผู้ใช้รูทภายในคอนเทนเนอร์ เนื่องจาก container เป็นเซิร์ฟเวอร์ ssh ฉันจึงลอง: sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root' แต่มันไม่ทำงาน ก่อนดำเนินการต่อและใช้เวลาในการดีบั๊กฉันต้องการทราบว่ามีวิธีที่ชาญฉลาดกว่านี้หรือไม่ ฉันเข้าใจว่า "นักเทียบท่า" ที่เหมาะสมคือการสร้างสคริปต์ที่เรียกใช้โดย Dockerfile ซึ่งดึงรหัสผ่านจากโวลุ่มที่แชร์และตั้งค่าเป็นรหัสผ่านรูท นี่ฟังดูซับซ้อน แต่ฉันรู้วิธีการใช้งานและทำงานได้ดีสำหรับรูปภาพตัวเทียบท่าอื่นที่ฉันใช้ แต่ฉันไม่ต้องการทำเพื่อสิ่งนี้ ฉันแค่ต้องการคำสั่งที่ใช้ Docker หรือ ssh เพื่อเปลี่ยนรหัสผ่านของผู้ใช้แบบไม่โต้ตอบ
11 ssh  bash  docker  passwd 

1
ไม่มีการเชื่อมต่อ IPv6 จากคอนเทนเนอร์นักเทียบท่า
ฉันมีปัญหาร้ายแรงที่จะเปิดใช้งาน IPv6 ในตัวเชื่อมต่อ สิ่งแวดล้อม โฮสต์กำลังเรียกใช้ Debian Jessie มันเป็นเซิร์ฟเวอร์เสมือน (KVM) eth0 มีที่อยู่ที่กำหนดค่าแบบคงที่เช่น w: x: y: z :: 1 ในเครือข่ายเช่น w: xy: z :: / 64 ซึ่ง บริษัท โฮสติ้งของฉันมอบหมายให้ฉัน โฮสต์ของฉันสามารถใช้ IPv6 ได้โดยไม่มีปัญหาใด ๆ : การปิงงานนอกโลกเว็บไซต์ที่ทำงานบนคอนเทนเนอร์ (พอร์ต 80 ที่เชื่อมต่อกับโฮสต์: 80) สามารถเข้าถึงได้ผ่าน ipv6 ปัญหา อย่างไรก็ตามฉันไม่สามารถเข้าถึงโลกภายนอกจากภายในภาชนะ! สะพาน docker0 ของฉันไม่มีที่อยู่ IPv6 หลังจากรีสตาร์ท Docker ด้วยพารามิเตอร์ด้านล่าง ไม่มีเส้นทางและไม่มีเกตเวย์ (ไม่มีเหตุผลหากไม่มีที่อยู่ …

3
นักเทียบท่า - ไม่มี crontab สำหรับรูต
My Dockerfile ดูเหมือนจะสร้างอย่างถูกต้อง (มันบอกฉันอย่างนั้น) เมื่อฉันเรียกใช้คอนเทนเนอร์ฉันได้รับข้อความแสดงข้อผิดพลาดด้านล่าง ฉันได้ลองใช้คำสั่ง ( CMD) โดยมีและไม่มีไดเรกทอรีของบริการ crontab.shโดยทั่วไปจะเขียนกำหนดการ cron ไปยังไฟล์ข้อความ ( cron.jobs) แล้วนำเข้าไฟล์ข้อความไปยัง crontab Dockerfile: FROM node:0.10 MAINTAINER Tom VOLUME /var/log/ RUN mkdir /pulse ADD . /pulse WORKDIR /pulse RUN apt-get update && apt-get install -y cron ADD *.sh /pulse/ RUN chmod 750 /pulse/crontab.sh && chmod 750 /pulse/ …
10 cron  docker 

6
AWS ElasticBeanstalk docker-pool-pool ได้รับความสมบูรณ์และทำให้ระบบไฟล์ติดตั้งใหม่เป็นแบบอ่านอย่างเดียวหรือไม่
ฉันไม่สามารถทราบได้ว่า AWS ตั้งค่า 'สระว่ายน้ำแบบบาง' ของ Docker บน ElasticBeanstalk อย่างไรและมันจะถูกเติมเต็มอย่างไร พูลที่บางของนักเทียบท่าของฉันกำลังเติมเต็มอย่างใดและทำให้แอปของฉันพังเมื่อพวกเขาพยายามเขียนลงดิสก์ นี่คือจากภายในคอนเทนเนอร์: >df -h > /dev/xvda1 25G 1.4G 24G 6% ในความเป็นจริงแล้ว EBS นั้นมีดิสก์ขนาด 25GB ที่จัดสรรให้กับมัน 1.6 gb คือdu -sh /ผลตอบแทน ข้างนอกใน EC2 มันเริ่มต้นอย่างไร้เดียงสาเพียงพอ ... (ผ่านlvs) LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert docker-pool docker twi-aot--- 11.86g …

3
Debian / IPv6: เส้นทางเริ่มต้นหมดอายุหลังจาก 1800 วินาทีทำให้การเชื่อมต่อขาดหาย
ฉันใช้ Debian 8 บน vServer หลังจากติดตั้งตัวเทียบท่าและเปิดใช้งาน IPv6 ฉันสังเกตเห็นบางสิ่งที่แปลก ฉันไม่ทราบว่านักเทียบท่ามีส่วนเกี่ยวข้องกับเรื่องนี้หรือไม่ฉันเพิ่งสังเกตเห็นปัญหานี้หลังจากติดตั้งแล้ว เส้นทางเริ่มต้นของฉันถูกกำหนดค่าให้หมดอายุหลังจาก ca 1800secs ที่จริงฉันหายตัวไปหลังจากหมดเวลานี้ นี่คือเมื่อการเชื่อมต่อ IPv6 i (ชัด) หลวม root@wopr:~# ip -6 route xxxx:yyyy:zzz:xxxx::/64 dev eth0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev br-5c1ce68ea951 proto kernel metric 256 fe80::/64 dev br-61f6bbfdbe87 proto kernel metric 256 …

2
ส่งต่อการเชื่อมต่อ ssh ไปยังคอนเทนเนอร์นักเทียบท่าตามชื่อโฮสต์
ฉันเข้าสู่สถานการณ์ที่เฉพาะเจาะจงมากและแม้ว่าจะมีวิธีอื่นในการทำเช่นนี้ฉันก็รู้สึกหมกมุ่นอยู่กับสิ่งนี้และต้องการหาวิธีที่จะทำสิ่งนี้: พื้นหลัง สมมติว่าฉันมีเซิร์ฟเวอร์ที่ใช้งานบริการหลายอย่างที่ซ่อนตัวอยู่ในคอนเทนเนอร์นักเทียบท่าแยก เนื่องจากบริการเหล่านั้นส่วนใหญ่เป็น http ฉันจึงใช้พร็อกซี nginx เพื่อแสดงโดเมนย่อยเฉพาะสำหรับแต่ละบริการ ตัวอย่างเช่นเซิร์ฟเวอร์โหนดกำลังทำงานบนคอนเทนเนอร์นักเทียบท่าที่มีพอร์ตที่80ผูกไว้127.0.0.1:8000กับโฮสต์ ฉันจะสร้าง vhost ใน Nginx ที่ผู้รับมอบฉันทะคำขอทั้งหมดเพื่อmyapp.mydomain.com วิธีการที่ภาชนะนักเทียบท่าที่ไม่สามารถเข้าถึงได้จากภายนอกยกเว้นผ่านhttp://127.0.0.1:8000myapp.mydomain.com ตอนนี้ฉันต้องการเริ่มต้นตู้คอนเทนเนอร์gogs dockerในลักษณะที่gogs.mydomain.comชี้ไปที่ตู้ gogs ดังนั้นฉันจึงเริ่มต้นภาชนะ gogs นี้ด้วยพอร์ตที่8000ผูกไว้127.0.0.1:8001กับโฮสต์ และไซต์ nginx proxying ร้องขอไปgogs.mydomain.comยังhttp://127.0.0.1:8001และทำงานได้ดี ... อย่างไรก็ตาม, gogs เป็น git container, ฉันยังต้องการเข้าถึง repos อย่างเช่นผ่าน, git@gogs.mydomain.com:org/repoแต่มันไม่ทำงานกับการตั้งค่าปัจจุบัน วิธีหนึ่งที่จะทำให้การทำงานที่จะมีการผูกพอร์ต22ของภาชนะไปยังท่าเรือ0.0.0.0:8022ในพื้นที่และจากนั้น URL SSH git@gogs.mydomain.com:8022/repoคอมไพล์สามารถเป็นสิ่งที่ชอบ (ดูเหมือนจะไม่ทำงานเมื่อฉันกดไปที่ต้นกำเนิดที่มี uri เช่นนั้น git ต้องการรหัสผ่านสำหรับผู้ใช้gitบนgogs.mydomain.com- แทนgogs.mydomain.com:8022- แต่นั่นอาจเป็นสิ่งที่ฉันทำผิดและอยู่นอกขอบเขตสำหรับคำถามนี้อย่างไรก็ตาม ฉันจะขอบคุณการวินิจฉัยใด ๆ เช่นกัน) ปัญหา …

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