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

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

4
วิธีแก้ไขไฟล์ใน Docker container ที่หยุด / ไม่เริ่ม
พยายามแก้ไขข้อผิดพลาดและแก้ไขปัญหาเกี่ยวกับแอปพลิเคชันของฉันที่แบ่งออกเป็นหลายคอนเทนเนอร์ฉันมักแก้ไขไฟล์ในคอนเทนเนอร์: ฉันขี้เกียจและติดตั้งนาโนและแก้ไขโดยตรงในคอนเทนเนอร์หรือ ฉันเทียบท่า cp ไฟล์ออกจากคอนเทนเนอร์แก้ไขคัดลอกกลับและรีสตาร์ทคอนเทนเนอร์ ขั้นตอนเหล่านี้เป็นขั้นตอนกลางก่อนที่จะมาถึงเนื้อหาใหม่สำหรับการสร้างคอนเทนเนอร์ซึ่งใช้เวลานานกว่าการทำข้างต้นมาก (ซึ่งแน่นอนว่าเป็นเพียงขั้นกลาง / การเล่นซอเท่านั้น) ตอนนี้ฉันมักจะทำลายโปรแกรมเริ่มต้นของคอนเทนเนอร์ซึ่งในกรณีที่ใช้งานไม่ได้อาจเป็นสคริปต์โหนดหรือสคริปต์เว็บเซิร์ฟเวอร์ python ซึ่งโดยทั่วไปทั้งสองจะล้มเหลวจากข้อผิดพลาดทางไวยากรณ์ มีวิธีใดในการบันทึกภาชนะเหล่านั้นหรือไม่? เนื่องจากพวกเขาไม่เริ่มต้นฉันจึงไม่สามารถเทียบท่ากับพวกเขาได้ดังนั้นพวกเขาจึงหลงทางให้ฉัน จากนั้นฉันไปที่เส้นทาง rm / rmi / build / run หลังจากแก้ไขไฟล์ที่ละเมิดในอินพุตบิลด์ ฉันจะแก้ไขไฟล์ในคอนเทนเนอร์ที่ถูกหยุดได้อย่างไรหรือ cp ในหรือเริ่มต้นเชลล์ในคอนเทนเนอร์ที่ถูกหยุด - สิ่งใดที่ช่วยให้ฉันแก้ไขคอนเทนเนอร์นี้ (ดูเหมือนว่าจะทำงานบนคอมพิวเตอร์ระยะไกลและทำลายการกำหนดค่าเครือข่าย - การเชื่อมต่อจะขาดหายไป "ตลอดกาล" ด้วยวิธีนี้และต้องใช้ทางเลือกอื่นหากมี) จะแก้ไขไฟล์ Docker container จากโฮสต์ได้อย่างไร? ดูเกี่ยวข้อง แต่ล้าสมัย
94 bash  docker 

20
การคัดลอกไฟล์ใน Dockerfile ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว?
ฉันมี Dockerfile ที่ตั้งค่าไว้ในโฟลเดอร์ root (~) สามบรรทัดแรกของไฟล์ของฉันมีลักษณะดังนี้: COPY file1 /root/folder/ COPY file2 /root/folder/ COPY file3 /root/folder/ แต่จะส่งกลับข้อผิดพลาดต่อไปนี้สำหรับแต่ละบรรทัด: ไม่พบไฟล์หรือโฟลเดอร์ที่คุณค้นหา ไฟล์อยู่ในไดเร็กทอรีเดียวกับ Dockerfile ของฉันและฉันกำลังเรียกใช้คำสั่งdocker build - < Dockerfileในไดเร็กทอรีเดียวกันในเทอร์มินัลด้วย ฉันทำอะไรผิดที่นี่?
94 docker 

16
จะลบภาพนักเทียบท่าตามชื่อได้อย่างไร?
ฉันต้องการลบอิมเมจนักเทียบท่าทุกเวอร์ชันที่มีชื่อที่มีสตริงที่กำหนด ( imagename) ฉันได้ลองด้านล่างแล้ว แต่ดูเหมือนจะไม่ได้ผล: docker images | grep 'imagename' | xargs -I {} docker rmi
94 docker 

10
วิธีใดในการตั้งค่าสภาพแวดล้อมการพัฒนาบน OS X ด้วย Docker ที่ถูกต้อง
Intro ฉันคิดวิธีที่ดีในการตั้งค่าสภาพแวดล้อมการพัฒนาบน OS X โดยใช้ Docker และ Boot2Docker ไม่ได้ ปัญหาที่ฉันประสบคือวิธีจัดการซอร์สโค้ดเพื่อให้: ฉันสามารถแก้ไขโค้ดบน OS X โดยใช้เครื่องมือ (ตัวแก้ไขข้อความ, IDE, คอมไพล์ ฯลฯ ) ที่ฉันติดตั้งไว้แล้ว การปรับเปลี่ยนเหล่านั้นจะแสดงในคอนเทนเนอร์ Docker ดังนั้นหากฉันเรียกใช้การทดสอบซ้ำหรือรีเฟรชหน้าเว็บฉันจะเห็นการเปลี่ยนแปลงของฉันทันที ตามทฤษฎีแล้วสิ่งนี้ควรทำได้ง่ายโดยการติดตั้งซอร์สโค้ดของฉันเป็นโวลุ่ม: docker run -it -v /path/to/my/source/code:/src some-docker-image น่าเสียดายที่ปัญหานี้มีสองประเด็นหลักที่ทำให้ใช้งานไม่ได้อย่างสมบูรณ์บน OS X: ปัญหา # 1: ไดรฟ์ข้อมูลที่ติดตั้งบน VirtualBox (ซึ่งใช้ vboxsf) ช้ามาก ตัวอย่างเช่นนี่คือระยะเวลาที่ Jekyll จะรวบรวมโฮมเพจของฉันหากซอร์สโค้ดเป็นส่วนหนึ่งของอิมเมจ Docker: > docker run -it brikis98/yevgeniy-brikman-homepage:v1 …

10
ฉันจะหารหัส sha256 ของอิมเมจนักเทียบท่าได้ที่ไหน
ฉันต้องการดึงภาพของ CentOS, Tomcat, ... โดยใช้รหัส sha256 เช่นใน docker pull myimage@sha256:0ecb2ad60 แต่ฉันไม่พบ sha256-code ที่จะใช้ที่ไหนเลย ฉันตรวจสอบที่เก็บ DockerHub เพื่อดูคำใบ้ของรหัส sha256 แต่ไม่พบเลย ฉันดาวน์โหลดภาพตามแท็ก docker pull tomcat:7-jre8 และตรวจสอบภาพด้วยdocker inspectเพื่อดูว่ามีรหัส sha256 ในข้อมูลเมตาหรือไม่ แต่ไม่มีเลย (การเพิ่มรหัส sha256 ของรูปภาพอาจเปลี่ยนรหัส sha256) ฉันต้องคำนวณรหัส sha256 ของรูปภาพด้วยตัวเองและใช้สิ่งนั้นหรือไม่

13
Docker Repository ไม่มีไฟล์รีลีสในการรัน apt-get update บน Ubuntu
ฉันใช้อูบุนตู 16.10 และเมื่อเร็ว ๆ นี้มีการติดตั้งหาง (v1.12.4) โดยใช้ Xenial สร้างโดยทำตามคำแนะนำที่พบที่นี่ ฉันไม่พบปัญหาใด ๆ ในการสร้างคอนเทนเนอร์ทำให้แน่ใจว่ารีสตาร์ทโดยอัตโนมัติ ฯลฯ อย่างไรก็ตามทุกครั้งที่ฉันเรียกใช้การอัปเดต apt-getฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: W: The repository 'https://apt.dockerproject.org/repo ubuntu-xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation …
94 ubuntu  docker  apt-get 

4
Docker Swarm ใช้การแชร์ระดับเสียงอย่างไร
Docker Swarm สามารถจัดการพื้นที่เก็บข้อมูลได้สองประเภท: volume และ bind แม้ว่าbindDocker Documentation จะไม่ได้รับการแนะนำเนื่องจากสร้างการเชื่อมโยงระหว่างไดเร็กทอรีโลคัล (บนโหนดกลุ่มแต่ละโหนด) กับงาน แต่การvolumeใช้งานไม่ได้กล่าวถึงดังนั้นฉันจึงไม่เข้าใจว่าไดรฟ์ข้อมูลถูกแบ่งปันระหว่างงานอย่างไร Docker Swarm แชร์ไดรฟ์ข้อมูลระหว่างโหนดอย่างไร ไดรฟ์ข้อมูลถูกบันทึกไว้ที่ไหน (ในผู้จัดการและหากมีผู้จัดการมากกว่าหนึ่งคน) จะไม่มีปัญหาระหว่างโหนดหรือไม่ถ้ามันทำงานบนเครื่องอื่นบนเครือข่ายที่แตกต่างกัน มันสร้าง VPN หรือไม่?

4
เรียกใช้สคริปต์ใน Dockerfile
ฉันพยายามเรียกใช้สคริปต์ระหว่างกระบวนการสร้างใน Dockerfile แต่ดูเหมือนจะไม่ได้ผล ฉันลองวิธีนั้น: FROM php:7-fpm ADD bootstrap.sh / ENTRYPOINT ["/bin/bash", "/bootstrap.sh"] ด้วยวิธีนี้: FROM php:7-fpm ADD bootstrap.sh / RUN bash -c "/bootstrap.sh" และ bu เรียกใช้คอนเทนเนอร์ที่กำลังทำงานของฉัน: docker exec symfony /bin/bash -c "/bootstrap.sh" ดูเหมือนจะไม่มีอะไรทำงาน คุณรู้วิธีการทำหรือไม่?

6
นักเทียบท่าวิ่งกับสร้าง
ความแตกต่างระหว่างdocker runและdocker createคำสั่งคืออะไร? ผมมักจะใช้แต่บางครั้งในเอกสารที่ฉันเห็นruncreate นักเทียบท่า--helpบอก create Create a new container run Run a command in a new container หมายความว่าrunใช้เมื่อเราต้องการส่งคำสั่งไปยังคอนเทนเนอร์ใหม่หรือไม่? แล้วจุดมุ่งหมายcreateคืออะไร?
93 docker 

7
Docker build ให้“ ไม่สามารถเตรียมบริบทได้: บริบทต้องเป็นไดเร็กทอรี: / Users / tempUser / git / docker / Dockerfile”
ฉันมีสิ่งDockerfileที่ควรจะสร้างUbuntuภาพ แต่เมื่อใดที่ฉันวิ่ง docker build -t ubuntu-test:latest ./Dockerfile แสดงข้อผิดพลาดต่อไปนี้บนคอนโซล ไม่สามารถเตรียมบริบท: บริบทต้องเป็นไดเร็กทอรี: / Users / tempUser / git / docker / Dockerfile ฉันใช้ Mac OsX ฉันพยายามแล้วsudoเช่นกัน ไม่มีอะไรทำงาน

2
ปิดใช้งานการบันทึกสำหรับคอนเทนเนอร์เดียวใน Docker-Compose
ฉันมีเว็บแอปพลิเคชันที่เปิดตัวโดยใช้ Docker compose ที่ฉันต้องการปิดใช้งานการบันทึกทั้งหมดสำหรับ (หรืออย่างน้อยที่สุดก็พิมพ์ออกไปยัง syslog แทนไฟล์) เมื่อเว็บแอปพลิเคชันของฉันทำงานได้อย่างรวดเร็วสามารถสร้างไฟล์บันทึก 11GB เมื่อเริ่มต้นระบบดังนั้นสิ่งนี้จึงกินเนื้อที่ดิสก์ของฉันอย่างรวดเร็ว ฉันทราบว่านักเทียบท่าปกติมีตัวเลือกการบันทึกสำหรับคำสั่งรัน แต่ฉันใช้ใน Docker Compose Docker-compose ขึ้น ในโฟลเดอร์แอปพลิเคชันเพื่อเริ่มแอปพลิเคชันของฉัน ฉันจะเปิดใช้งานฟังก์ชันนี้ในกรณีของฉันได้อย่างไร ฉันไม่เห็นกรณีเฉพาะใด ๆ ทางออนไลน์

5
นักเทียบท่าทำตาม symlink นอกบริบท
ยังมีอีกคำถาม symlink ของ Docker ฉันมีไฟล์มากมายที่ต้องการคัดลอกไปยัง Docker builds ทั้งหมดของฉัน โครงสร้าง dir ของฉันคือ: parent_dir - common_files - file.txt - dir1 - Dockerfile - symlink -> ../common_files ในตัวอย่างข้างต้นฉันต้องการให้คัดลอก file.txt เมื่อฉันสร้างนักเทียบท่าภายใน dir1 แต่ฉันไม่ต้องการคงสำเนา file.txt ไว้หลายชุด ตามลิงค์นี้สำหรับนักเทียบท่ารุ่น 0.10ต้องสร้างนักเทียบท่า ทำตาม symlinks ภายในรูทของคอนเทนเนอร์สำหรับคำแนะนำในการสร้าง ADD แต่ฉันไม่ได้รับไฟล์หรือไดเรกทอรีดังกล่าวเมื่อฉันสร้างด้วยบรรทัดใดบรรทัดหนึ่งเหล่านี้ใน Dockerfile ของฉัน: ADD symlink /path/dirname หรือ ADD symlink/file.txt /path/file.txt ตัวเลือกการติดตั้งจะไม่แก้ปัญหาให้ฉัน (ข้ามแพลตฟอร์ม ... …

3
สร้างคอนเทนเนอร์ Docker ใหม่เมื่อมีการเปลี่ยนแปลงไฟล์
สำหรับการเรียกใช้แอปพลิเคชัน ASP.NET Core ฉันได้สร้าง Dockerfile ซึ่งสร้างแอปพลิเคชันและคัดลอกซอร์สโค้ดในคอนเทนเนอร์ซึ่ง Git ดึงข้อมูลโดยใช้ Jenkins ดังนั้นในพื้นที่ทำงานของฉันฉันทำสิ่งต่อไปนี้ใน dockerfile: WORKDIR /app COPY src src ในขณะที่ Jenkins อัปเดตไฟล์บนโฮสต์ของฉันอย่างถูกต้องด้วย Git Docker จะไม่ใช้สิ่งนี้กับรูปภาพของฉัน สคริปต์พื้นฐานของฉันสำหรับการสร้าง: #!/bin/bash imageName=xx:my-image containerName=my-container docker build -t $imageName -f Dockerfile . containerRunning=$(docker inspect --format="{{ .State.Running }}" $containerName 2> /dev/null) if [ "$containerRunning" == "true" ]; then docker stop …

21
ข้อผิดพลาดนักเทียบท่า: รูปแบบการอ้างอิงไม่ถูกต้อง: ชื่อที่เก็บต้องเป็นตัวพิมพ์เล็ก
พบข้อผิดพลาด Docker นี้กับหนึ่งในโครงการของฉัน: invalid reference format: repository name must be lowercase อะไรคือสาเหตุต่างๆสำหรับข้อความทั่วไปนี้ ฉันคิดออกแล้วหลังจากใช้ความพยายามดังนั้นฉันจะตอบคำถามของตัวเองเพื่อบันทึกไว้ที่นี่เนื่องจากวิธีแก้ปัญหาไม่เกิดขึ้นทันทีเมื่อทำการค้นหาเว็บและเนื่องจากข้อความแสดงข้อผิดพลาดนี้ไม่ได้อธิบาย ปัญหาโดยตรงที่ Docker พบ

7
วิธีการลองดึงภาพใน kubernetes Pods อีกครั้ง
ฉันยังใหม่กับ kubernetes ฉันมีปัญหาในพ็อด เมื่อฉันรันคำสั่ง kubectl get pods ผลลัพธ์: NAME READY STATUS RESTARTS AGE mysql-apim-db-1viwg 1/1 Running 1 20h mysql-govdb-qioee 1/1 Running 1 20h mysql-userdb-l8q8c 1/1 Running 0 20h wso2am-default-813fy 0/1 ImagePullBackOff 0 20h เนื่องจากปัญหาของโหนด "wso2am-default-813fy" ฉันต้องรีสตาร์ท ข้อเสนอแนะใด ๆ ?

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