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

รูปภาพของ Docker, container, hub, และทุกอย่างที่เกี่ยวข้องกับแพลตฟอร์ม containerization

5
จะห้ามการเข้าถึง internals ของคอนเทนเนอร์ Docker ได้อย่างไร?
ฉันต้องการส่งมอบแอพของฉันให้กับลูกค้าในรูปของนักเทียบท่ารูปภาพ แต่สิ่งสำคัญคือต้องมั่นใจว่าผู้ใช้ปลายทางจะไม่เปลี่ยนแปลงสิ่งใด ๆ ในภาชนะ ผู้ใช้ควรสามารถเรียกใช้ / หยุดคอนเทนเนอร์และโต้ตอบกับคอนเทนเนอร์ผ่านเครือข่ายเท่านั้น เป็นไปได้หรือไม่ที่จะห้ามการเข้าถึงที่เก็บของภายใน? เป็นไปได้หรือไม่ที่จะตรวจสอบความสมบูรณ์ของภาพที่ทำจากตู้คอนเทนเนอร์?
14 docker  security 

6
นักเทียบท่าเหมาะกับเคสที่ใช้ของฉันหรือไม่
บริษัท ของฉันมีระบบที่เราขายซึ่งประกอบด้วยมินิคอมพิวเตอร์ "Smartbox" ที่ใช้งาน Ubuntu 12.04 กล่องนี้เรียกใช้แอปพลิเคชัน Django รวมถึงกระบวนการพุ่งพรวดที่แตกต่างกันจำนวนหนึ่งที่เกี่ยวข้อง ไม่มาก เรามีกล่องเหล่านี้หลายพันกล่องบนสนาม เราจัดการการขึ้นต่อกันของแพ็คเกจการลงทะเบียนกระบวนการ ฯลฯ ผ่านแพคเกจเดบิตที่มีระดับความสำเร็จที่แตกต่างกัน เราต้องการวิธีที่จะผลักดันการอัปเดตให้กับผู้ใช้ของเราอย่างมีประสิทธิภาพและรวดเร็ว นอกจากนี้เรายังต้องการบางสิ่งบางอย่างเมื่อเราอัพเกรดระบบปฏิบัติการ (เราเกินกำหนดสำหรับการอัพเกรด Ubuntu อย่างที่คุณบอก) เราสามารถรู้สึกปลอดภัยเกี่ยวกับแพ็คเกจของเรา "เพิ่งใช้งานได้" ฉันไม่รู้อะไรเกี่ยวกับนักเทียบท่า แต่เมื่อฉันได้ยินปัญหาของเราเป็นครั้งแรก (ฉันเป็นคนจ้างใหม่) นักเทียบท่าเป็นความคิดแรกของฉัน แต่ยิ่งฉันคิดเกี่ยวกับมันมากขึ้นฉันก็รู้สึกว่ามันอาจจะไม่ใช่เพราะกล่องเหล่านี้เป็นของเราที่เราควบคุมระบบปฏิบัติการซึ่งเป็นส่วนสำคัญของคุณค่าของ Docker หรือฉันเข้าใจ ดังนั้นถ้าเรารู้ว่ากล่องของเราจะเป็น Ubuntu เสมอและโดยพื้นฐานแล้วเรามีแอพ Django บวกกับกระบวนการบางอย่างที่จะเรียกใช้ Docker ดีกว่าแพ็คเกจ deb หรือไม่? TL; DR: นักเทียบท่าเทียบกับแพ็คเกจ deb สำหรับอุปกรณ์แบบกระจายที่มักจะเรียกใช้ Ubuntu ดังนั้นความเป็นอิสระของแพลตฟอร์มจึงไม่สำคัญ
14 docker 

2
เชื่อมต่อคอนเทนเนอร์ Docker กับทั้งโฮสต์และเครือข่ายบริดจ์ภายใน
ฉันกำลังพยายามที่จะใช้ภาชนะหางเป็นเราเตอร์ระหว่างเอกชน (ก--internal) เครือข่ายนักเทียบท่าและกำหนดไว้ล่วงหน้าhostเครือข่าย ซึ่งหมายความว่าคอนเทนเนอร์จำเป็นต้องมีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซ "นอก" หนึ่งที่สามารถเข้าถึงที่อยู่ IP โฮสต์ทั้งหมดและอินเทอร์เฟซ "ภายใน" หนึ่งที่ทำหน้าที่เป็นเกตเวย์สำหรับคอนเทนเนอร์ในเครือข่าย Docker ภายใน คอนเทนเนอร์ของเราเตอร์นั้นจะ NAT เครือข่ายทราฟฟิกจาก / ไปยังคอนเทนเนอร์ ฉันไม่พบวิธีกำหนดค่า Docker ให้เรียกใช้คอนเทนเนอร์ด้วยอินเทอร์เฟซทั้งสองนั้น ที่ใกล้เคียงที่สุดที่ฉันจะได้รับคือมีbridgeอินเทอร์เฟซสองชุดซึ่งไม่ตรงกับที่ฉันต้องการ การพยายามเชื่อมต่อด้วยตนเองทำให้เกิดข้อผิดพลาด: # docker network connect host root_router_1 Error response from daemon: Container cannot be disconnected from host network or connected to host network ทุกคนสามารถแสดงให้ฉันเห็นว่าจะบรรลุสิ่งนี้ได้อย่างไรโดยเฉพาะอย่างยิ่งแม้เมื่อนักเทียบท่าเขียนข้อความ?

2
วิธีการเปิดใช้งานแคช NPM ใน Jenkins สร้างทาสที่ทำงานใน Docker?
ฉันมีภาพนักเทียบท่าเรียกมันfrontend.imageว่าฉันใช้สำหรับเจนกินส์สร้างทาส ปลั๊กอิน Jenkins Dockerจะหมุนคอนเทนเนอร์จากภาพนี้และสร้างสิ่งประดิษฐ์ภายในคอนเทนเนอร์ ทั้งหมดนี้ใช้งานได้ดี ในกรณีfrontend.imageนี้ใช้เพื่อสร้างแอป AngularJs ส่วนหนึ่งของการสร้างแอปพลิเคชันเชิงมุมนี้คือการติดตั้งแพคเกจ npm ที่แอปต้องการ กระบวนการนี้ติดตั้ง npm ดูเหมือนจะใช้เวลานาน 3 นาทีดูเหมือนว่า npm จะติดตั้งทุกแพ็คเกจทุกครั้ง ดังนั้นฉันจึงเพิ่มวอลลุ่มสำหรับทาสของฉันมันเป็นโวลุ่มที่เมาท์โฮสต์ปลั๊กอินนักเทียบท่าจะใช้วอลลุ่มนี้ทุกครั้งที่เรียกใช้คอนเทนเนอร์ส่วนหน้า: ผู้ใช้ที่รันคำสั่งคือnpm install jenkinsNPM เก็บแคชซึ่งคุณสามารถหาได้ด้วยคำสั่งnpm config get cacheที่เอาต์พุต/home/jenkins/.npm นั่นคือเหตุผลที่ฉันมีไดรฟ์ข้อมูลโฮสต์/slaves/volumes/tsl.frontend:/home/jenkinsติดตั้งกับทาสเว็บคอนเทนเนอร์ของฉัน ฉันสร้างแอปพลิเคชัน Angular ของฉันโดยใช้โครงการ Jenkins สร้างไม่มีปัญหาติดตั้งแพคเกจ npm จำนวนมาก ถ้า ssh เข้าสู่โฮสต์ Docker ของฉันและเรียกใช้ cmd ls /slaves/volumes/tsl.frontendฉันเห็นแพ็คเกจ npm มากมาย นี่หมายความว่าเมานต์วอลลุ่มของฉันสำหรับทาสทำงาน ตอนนี้ฉันสร้างโครงการเจนกินส์อีกครั้ง npm ติดตั้งทุกแพ็คเกจเดียวอีกครั้งแม้ว่าคอนเทนเนอร์สร้างทาสของนักเทียบท่าจะใช้เมานต์โฮสต์ปริมาณ ฉันยังสามารถยืนยันได้ด้วยการทุบตีลงในคอนเทนเนอร์ทาสด้วย cmd docker …
13 docker  jenkins  npm 

4
มีแนวทางปฏิบัติที่ดีที่สุดและ / หรือเครื่องมือในการทำความสะอาดอิมเมจ Docker แบบเก่าเป็นประจำหรือไม่?
มีวิธีที่สง่างามหรือการปฏิบัติที่ดีที่สุดเมื่อพูดถึงการลบภาพเก่าออกจาก Registry Docker หรือไม่? ฉันเห็นคำขอ / ปัญหามากมายที่นี่: https://github.com/docker/docker-registry/labels/deleteแต่ไม่พบโซลูชันที่ดี / เป็นที่นิยมสำหรับมัน ดังนั้นมีเครื่องมือหรือเทคนิคที่จะช่วยฉันทำสิ่งนั้นหรือไม่? นอกจากนี้ยังมีแนวปฏิบัติที่ดีที่สุดที่คุณทำตามในขณะที่ทำมันหรือไม่?
13 docker  toolchain 

3
บน Azure ฉันจะรันคอนเทนเนอร์ Docker อายุสั้นตามกำหนดเวลาได้อย่างไร
ฉันมีสคริปต์เชลล์ Unix ที่ค่อนข้างง่ายบรรจุในอัลไพน์ Linux Docker container ที่โฮสต์ในรีจิสตรีคอนเทนเนอร์ Azure VM เรียกใช้สคริปต์นี้ด้วย cron: docker login <snip> docker pull example.com/bar:latest docker run example.com/bar:latest ฉันสามารถทำได้โดยไม่ใช้ VM และใช้บริการ Azure แทนอาจมีตัวจัดกำหนดการบางอย่างที่ทำงานใน Azure Container Instance หรือไม่ แรงจูงใจของฉันไม่ต้องการรักษาและจ่ายให้กับ VM

2
วิธีการตรวจสอบกระบวนการหลักที่เสียชีวิตในตู้เทียบท่า?
บางครั้งคุณต้องตรวจสอบภาชนะบรรจุซึ่งหยุดทำงานหรือภาชนะบรรจุซึ่งหลังจากการเริ่มต้นการตายอย่างรวดเร็วและหยุดลง docker exec -ti <id> bash ใช้งานได้กับการเรียกใช้คอนเทนเนอร์เท่านั้นเมื่อเสร็จสิ้นพรอมต์ bash จะสิ้นสุดลงเช่นกัน ด้วยdocker startคุณไม่สามารถให้คำสั่งที่แตกต่างกันและถ้าคอนเทนเนอร์ตายทันทีอีกครั้งคุณจะไม่มีเวลาพอที่จะเข้าไปในคอนเทนเนอร์และทำการตรวจสอบของคุณ เราสามารถทำได้docker commitแล้วdocker runในภาพใหม่ด้วยคำสั่งที่แตกต่างกัน แต่ฉันสงสัยว่ามีทางเลือกอื่น ๆ หมายเหตุ : docker logsเพียงแค่คืนสิ่งที่แอพพลิเคชั่นพิมพ์ไปยัง stdout / stderr นั่นอาจไม่เพียงพอที่จะคิดออกว่าปัญหาคืออะไร

2
ฉันจะปรับใช้กับ Kubernetes ได้อย่างไรโดยอัตโนมัติ
สมมติว่าฉันติดตั้ง Kubernetes ผ่านทาง Rancher และ Jenkins กำลังสร้างอิมเมจใหม่และผลักดันพวกเขาไปที่ DockerHub เมื่อเช็คอินรหัสใหม่ไปที่ GitHub ฉันจะทำให้รูปภาพใหม่ถูกปรับใช้โดยอัตโนมัติได้อย่างไร อีกวิธีหนึ่งในการถามคำถามคือ“ ฉันเคยใช้ Octopus เพื่อจัดการการปรับใช้ของฉัน มีสิ่งที่คล้ายกันในตัวกับ Kubernetes หรือ Rancher หรือไม่” ท้ายที่สุดมันเป็นช่องว่างสุดท้ายที่ฉันต้องดิ้นรน

2
การวางแผนความจุของนักเทียบท่าคอนเทนเนอร์
ฉันกำลังเรียกใช้แอปพลิเคชันของฉันบนเครื่องเสมือน 4 เครื่องที่มี CPU เสมือน 3.2 3.2 GHz และ 32 GB อย่างไรก็ตามฉันจะแยกกระบวนการเป็นภาชนะแยกต่างหาก ฉันไม่แน่ใจว่ามีจำนวนตู้คอนเทนเนอร์ที่จะเรียกใช้ต่อโฮสต์ หมายเลขทั่วไปคืออะไร ตัวอย่างเช่นวิธีที่อัตราส่วน VM ต่อเซิร์ฟเวอร์เปล่าอัตรา 1:10 โดยทั่วไปลิงก์ใด ๆ ในคุณลักษณะที่ต้องพิจารณากรอบการตัดสินใจที่ต้องพิจารณาหรือประสบการณ์จะช่วยได้!

2
รวมนักเทียบท่า Swarm และ Kubernetes
บริษัท ของฉันพยายามเล่นให้ทันในพื้นที่ DevOps ฉันได้ทำการค้นคว้ามากมายเกี่ยวกับการจัดเก็บแอปพลิเคชันและระบบ orchestration ที่สอดคล้องกับมัน ฉันเจอบทความ (สิ่งที่ฉันหวังว่าจะได้รับการบันทึก) ที่พวกเขากำลังพูดถึงการรวม Swarm เข้ากับ Kubernetes เพื่อรับฟังก์ชั่นที่ดีขึ้น ในบทความนี้พวกเขาไม่ได้กำหนดสิ่งที่พวกเขาได้รับจากการทำเช่นนั้น ฉันสงสัยว่าจะให้ประโยชน์อะไรบ้าง การเพิ่มเลเยอร์พิเศษของความซับซ้อนกำลังจะให้ผลตอบแทนมากหรือไม่? แก้ไข:ฉันกำลังมองหามืออาชีพด้านเทคนิค / แย้งของ KISS เป็นคำขวัญที่ดี แต่ไม่ได้โต้เถียงกับ CEO หรือ Board ของคุณ ฉันเกือบจะเป็นบวกที่เราจะเลือกนักเทียบท่าสำหรับตู้คอนเทนเนอร์และ Swarm สำหรับการบรรเลงเพลง อย่างไรก็ตามฉันต้องการเห็น Kubernetes ในพื้นที่ของเราดังนั้นข้อเสนอที่คุณสามารถผสานเทคโนโลยีเข้าด้วยกันเพื่อการแก้ปัญหาที่มีประสิทธิภาพยิ่งขึ้นก็เป็นที่สนใจของฉัน

4
ไม่สามารถเชื่อมต่อกับ chocolatey.org หรือเว็บไซต์อินเทอร์เน็ตอื่น ๆ จากภายในตู้คอนเทนเนอร์
xpost จากhttps://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745 พฤติกรรมที่คาดหวัง ฉันใช้ Windows Server 2016 Datacenter (ดาวน์โหลด MSDN) 64 บิต - รุ่น 1607 - Build 14393.1715 ฉันใช้ Docker สำหรับ Windows และใช้งาน Windows Containers ฉันคิดว่านี่เป็นสิ่งที่ง่ายที่สุดในโลกเมื่อต้องการทำสิ่งนี้: reboot my host machine docker run -it microsoft/windowsservercore powershell iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')); ความคาดหวังสำหรับสิ่งนี้เพื่อติดตั้งช็อคโกแลตในภาชนะ จริงๆแล้วฉันกำลังจะทำสิ่งนี้ใน dockerfile แต่ฉันจะเป็นตัวอย่างการทำงานขั้นต่ำเพื่อรับความช่วยเหลือตอนนี้ ต่อไปนี้เป็นไฟล์นักเทียบท่าจริงที่ล้มเหลว (มันช่างน่าเศร้าเหลือเกิน) FROM microsoft/windowsservercore SHELL ["Powershell"] ENV ChocolateyUseWindowsCompression …
12 docker  windows 

2
วิธีเรียกใช้คุณลักษณะนักเทียบเคียงรุ่นทดลองบน CircleCI
เมื่อเริ่มสร้างบน CircleCI สิ่งแรกที่ทำคือ: ติดตั้งเอ็นจิ้น Docker ระยะไกล Specified reusable docker engine, but build has not been whitelisted. Contact CircleCI to be whitelisted Allocating a remote Docker Engine ... Remote Docker engine created. Using VM 'prealloc-wrjtu1qd-1491949826270' Created container accessible with: DOCKER_TLS_VERIFY=1 DOCKER_HOST=tcp://<IP>:2376 DOCKER_CERT_PATH=/tmp/docker-certs615987123 DOCKER_MACHINE_NAME=51123 ต่อจากนั้นเมื่อdocker build --squash -t imagename .ถูกเรียกใช้บน CircleCI ผลลัพธ์จะเป็น: …

3
Jenkins: ปัญหาการอนุญาตให้ใช้ Docker เป็นสภาพแวดล้อมการสร้าง
ฉันติดตั้ง Jenkins บนเครื่อง Ubuntu 16.04 เจนกินส์ตัวเองไม่ได้ทำงานในภาชนะ สิ่งที่ฉันต้องการจะทำก็แค่โทรหาyarn installโดยใช้อิมเมจโหนด ดังนั้นนี่คือ Jenkinsfile ของฉัน: pipeline { agent any stages { stage('install node modules...') { agent { docker 'node' } steps { sh 'cd /path/to/package.json; yarn install' } } } } ตรงไปตรงมาสวยใช่มั้ย เจนกินส์ผู้ใช้ / กลุ่ม112:116และ uid ของภาชนะโหนดคือ1000เพราะฉะนั้นกระบวนการเส้นด้าย (ซึ่งทำงานเป็นผู้ใช้โหนด 1000) mkdir /.configไม่สามารถทำในสิ่งที่ตนชอบ ฉันพยายามหมุนโหนดคอนเทนเนอร์ที่ผ่านการโต้เถียง-u 1000มันชนกับปัญหาสิทธิ์เมื่อพยายามสร้างไดเรกทอรีที่ทนทาน ดูเหมือนว่าเป็นปัญหาประเภทหนึ่งหรือประเภทอื่นฉันจะแก้ไขได้อย่างไร …

7
ทำไมนักพัฒนาจึงควรใส่ใจนักเทียบท่า?
โดยทั่วไปนักพัฒนาจะใส่ใจกับความต้องการทางธุรกิจที่พึงพอใจ เขา / เธออาจมีความเชี่ยวชาญในสแต็คเฉพาะหรือกรอบ แต่เขา / เธอควรใช้ความพยายามในการเรียนรู้นักเทียบท่าและเป็นวิธีการปรับใช้ที่หลากหลาย (Swarm, Kube, Mesos, ฯลฯ )? ทำไมนักพัฒนาถึงใส่ใจนักเทียบท่า? PS: คำถามหลักของโพสต์นี้คือความหมายของการแนะนำนักเทียบท่ากับทีมพัฒนา

2
การตั้งค่าการอนุญาตที่ถูกต้องเมื่อเรียกใช้ Docker ใน Jenkins Pipeline คืออะไร
ฉันพยายามดึงเจนกินส์ไปป์ไลน์ใหม่ด้วยกันเพื่อทดสอบคำขอดึงใหม่ไปยังโค้ดของเรา ฉันใช้นักเทียบท่าพร้อมกับubuntu:14.04ภาพเพื่อจำลองสภาพแวดล้อมการผลิตของเรา นี่คือตัวอย่างการทำงานขั้นต่ำ: #jenkinsfile stage('Checkout and provision'){ docker.image('ubuntu:14.04').withRun('-u root'){ checkout scm sh 'chmod -R 770 ./' sh './init-script.sh' } } และ #init-script.sh sudo add-apt-repository ppa:ondrej/php sudo apt-get update -y sudo apt-get dist-upgrade -y sudo apt-get install \ apache2 \ php \ php-mysql \ php-xml \ libapache2-mod-auth-mysql \ libapache2-mod-php \ php5-curl …
11 jenkins  docker 

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