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

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

5
วิธีการโอนปริมาณข้อมูลอย่างเดียวจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่ง
ตามที่อธิบายไว้ในเอกสาร Docker เกี่ยวกับการทำงานกับไดรฟ์ข้อมูลมีแนวคิดของสิ่งที่เรียกว่าคอนเทนเนอร์ข้อมูลเท่านั้นซึ่งจัดเตรียมไดรฟ์ข้อมูลที่สามารถต่อเข้ากับคอนเทนเนอร์อื่น ๆ ได้ไม่ว่าคอนเทนเนอร์ข้อมูลอย่างเดียวจะทำงานจริงหรือไม่ก็ตาม โดยทั่วไปสิ่งนี้ฟังดูน่ากลัว แต่มีสิ่งหนึ่งที่ฉันไม่เข้าใจ ไดรฟ์ข้อมูลเหล่านี้ (ซึ่งไม่ได้แมปกับโฟลเดอร์บนโฮสต์อย่างชัดเจนด้วยเหตุผลด้านความสามารถในการพกพาเนื่องจากสถานะเอกสารประกอบ) ถูกสร้างและจัดการโดย Docker ในโฟลเดอร์ภายในบางโฟลเดอร์บนโฮสต์ ( /var/docker/volumes/…) สมมติว่าฉันใช้โวลุ่มดังกล่าวแล้วฉันต้องย้ายจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่ง - ฉันจะโอนโวลุ่มได้อย่างไร AFAICS มี ID เฉพาะ - ฉันสามารถไปและคัดลอกโวลุ่มและคอนเทนเนอร์ตามข้อมูลเท่านั้นไปยังโฮสต์ใหม่ได้หรือไม่ ฉันจะค้นหาไฟล์ที่จะคัดลอกได้อย่างไร หรือมีการสนับสนุนในตัวสำหรับ Docker ที่ฉันยังไม่ค้นพบหรือไม่?
121 docker 

1
จะส่งอาร์กิวเมนต์ไปยัง Dockerfile ได้อย่างไร?
ฉันใช้คำสั่ง RUN ภายใน a Dockerfileเพื่อติดตั้งรอบต่อนาที RUN yum -y install samplerpm-2.3 อย่างไรก็ตามฉันต้องการส่งค่า "2.3" เป็นอาร์กิวเมนต์ คำสั่ง RUN ของฉันควรมีลักษณะดังนี้: RUN yum -y install samplerpm-$arg ที่ไหน $arg=2.3

2
Docker Container ใช้ CPU กี่ตัว?
สมมติว่าฉันกำลังเรียกใช้บริการมัลติโปรเซสเซอร์ภายในคอนเทนเนอร์นักเทียบท่าที่วางไข่หลายกระบวนการนักเทียบท่าจะใช้คอร์ / ซีพียูทั้งหมด / หลายคอร์ของโฮสต์หรือเพียงอันเดียว
120 docker 

8
Docker - ฉันจะคัดลอกไฟล์จากรูปภาพไปยังโฮสต์ได้อย่างไร
คำถามของฉันเกี่ยวข้องกับคำถามเกี่ยวกับการคัดลอกไฟล์จากคอนเทนเนอร์ไปยังโฮสต์ ฉันมี Dockerfile ที่ดึงข้อมูลอ้างอิงรวบรวมสิ่งประดิษฐ์สร้างจากแหล่งที่มาและเรียกใช้ไฟล์ปฏิบัติการ ฉันต้องการคัดลอกบิวด์อาร์ติแฟกต์.zipด้วย(ในกรณีของฉันมันสร้างโดยsbt distใน "../ target /" แต่ฉันคิดว่าคำถามนี้ยังใช้ได้กับไหไบนารี ฯลฯ docker cpทำงานบนคอนเทนเนอร์ไม่ใช่รูปภาพ ฉันจำเป็นต้องเริ่มคอนเทนเนอร์เพื่อดึงไฟล์ออกมาหรือไม่ ในสคริปต์ฉันลองทำงาน/bin/bashในโหมดโต้ตอบในพื้นหลังคัดลอกไฟล์ออกจากนั้นจึงฆ่าคอนเทนเนอร์ แต่ดูเหมือนว่าจะไม่ดี มีวิธีที่ดีกว่า? ในทางกลับกันฉันต้องการหลีกเลี่ยงการคลาย.tarไฟล์หลังจากเรียกใช้docker save $IMAGENAMEเพื่อดึงไฟล์ออกมาหนึ่งไฟล์ (แต่ดูเหมือนว่าจะเป็นตัวเลือกที่ง่ายที่สุดถ้าช้าที่สุดในตอนนี้) ฉันจะใช้วอลุ่มนักเทียบท่าเช่น: docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out แต่ฉันทำงานboot2dockerใน OSX และฉันไม่รู้วิธีเขียนลงในระบบไฟล์โฮสต์ mac ของฉันโดยตรง (ไดรฟ์ข้อมูลแบบอ่าน - เขียนกำลังติดตั้งอยู่ใน boot2docker VM ของฉันซึ่งหมายความว่าฉันไม่สามารถแชร์สคริปต์เพื่อดึงข้อมูลblah.zipจากรูปภาพได้อย่างง่ายดายคนอื่น ๆ ความคิด?

18
Docker-Compose ไม่สามารถเชื่อมต่อกับ Docker Daemon
ฉันได้รับข้อความแสดงข้อผิดพลาดว่าฉันไม่สามารถเชื่อมต่อกับ Docker daemon ฉันได้ตรวจสอบคำตอบของคนอื่นที่มีปัญหาคล้ายกัน แต่ไม่ได้ช่วยอะไร ฉันใช้ Ubuntu เวอร์ชัน 15.10 ฉันจะพยายามให้ข้อมูลทั้งหมดที่ฉันมี root@# docker-compose -f docker-compose-deps.yml up -d ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. เวอร์ชัน Docker root@# sudo docker version Client: Version: …

5
Java ใช้หน่วยความจำมากกว่าขนาดฮีป (หรือขนาดที่ถูกต้อง จำกัด หน่วยความจำ Docker)
สำหรับแอปพลิเคชันของฉันหน่วยความจำที่ใช้โดยกระบวนการ Java นั้นมากกว่าขนาดฮีปมาก ระบบที่คอนเทนเนอร์กำลังทำงานอยู่เริ่มมีปัญหาหน่วยความจำเนื่องจากคอนเทนเนอร์ใช้หน่วยความจำมากกว่าขนาดฮีปมาก ขนาดฮีปตั้งไว้ที่ 128 MB ( -Xmx128m -Xms128m) ในขณะที่คอนเทนเนอร์ใช้หน่วยความจำสูงสุด 1GB ภายใต้สภาวะปกติต้องใช้ 500MB หากคอนเทนเนอร์นักเทียบท่ามีขีด จำกัด ด้านล่าง (เช่นmem_limit=mem_limit=400MB) กระบวนการจะถูกฆ่าโดยนักฆ่าหน่วยความจำที่ไม่เพียงพอของระบบปฏิบัติการ คุณช่วยอธิบายได้ไหมว่าทำไมกระบวนการ Java ถึงใช้หน่วยความจำมากกว่าฮีป วิธีปรับขนาดขีด จำกัด หน่วยความจำ Docker ให้ถูกต้อง มีวิธีลดรอยเท้าหน่วยความจำนอกฮีปของกระบวนการ Java หรือไม่? ผมรวบรวมรายละเอียดบางอย่างเกี่ยวกับปัญหาการใช้คำสั่งจากการติดตามหน่วยความจำพื้นเมืองใน JVM จากระบบโฮสต์ฉันได้รับหน่วยความจำที่คอนเทนเนอร์ใช้ $ docker stats --no-stream 9afcb62a26c8 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET …
119 java  linux  docker  memory  jvm 

2
docker.io เกี่ยวข้องกับ docker-ce และ docker-ee คืออะไร?
ก่อนหน้านี้ในการติดตั้งนักเทียบท่าฉันจะใช้ apt-get install docker.io อย่างไรก็ตามฉันเพิ่งสังเกตเห็นเอกสารสำหรับการติดตั้ง Docker และมันใช้ docker-ce ฉันพยายามค้นหาความแตกต่างระหว่างทั้งสอง แต่ก็ว่างเปล่า docker.io เกี่ยวข้องกับ docker-ce คืออะไร?

3
วิธีแท็กภาพนักเทียบท่าด้วยนักเทียบท่า
ฉันต้องการสร้างภาพผ่านนักเทียบท่าและตั้งค่าแท็กเฉพาะให้ เอกสารระบุว่า: การเขียนจะสร้างและติดแท็กด้วยชื่อที่สร้างขึ้นและใช้ภาพนั้นหลังจากนั้น แต่ฉันไม่พบวิธีระบุแท็กและสำหรับรูปภาพที่สร้างขึ้นฉันมักจะเห็นแท็ก "ล่าสุด"

3
วิธีกำหนดหน่วยความจำเพิ่มเติมให้กับ Docker container
เมื่อชื่ออ่านฉันพยายามกำหนดหน่วยความจำเพิ่มเติมให้กับคอนเทนเนอร์ของฉัน ฉันใช้รูปภาพจาก Docker hub ชื่อ "aallam / tomcat-mysql" ในกรณีที่เกี่ยวข้อง เมื่อฉันเริ่มต้นตามปกติโดยไม่มีแฟล็กพิเศษใด ๆ หน่วยความจำมีขีด จำกัด 2GB (แม้ว่าฉันจะอ่านว่าหน่วยความจำนั้นไม่ถูกผูกไว้หากไม่ได้ตั้งค่าไว้) นี่คือสถิตินักเทียบท่าของฉัน CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS ba57d6c9e9d2 0.22% 145.6 MiB / 1.952 GiB 7.29% 508 B / 508 B 0 B / 6.91 MB 68 ฉันลองตั้งค่าหน่วยความจำแบบชัด …

2
/ bin / sh: apt-get: ไม่พบ
ฉันกำลังพยายามเปลี่ยน DockerFile ให้ทำงานกับแอสเปลล์ ฉันมีสคริปต์ทุบตีที่ฉันต้องการห่อในท่าเรือ Step 4: Wrap the script in a Docker container. The sample SDK we downloaded earlier contains an example of an action wrapped in a Docker container. In particular, the sample SDK includes a Dockerfile that builds the C program in client/example.c and installs the binary as …

2
docker run -it flag คืออะไร?
ฉันกำลังทำบางสิ่งที่ซับซ้อนกับนักเทียบท่า แต่ปรากฎว่าฉันไม่รู้ว่า-itธงหมายถึงอะไร เมื่อเร็ว ๆ นี้ฉันได้เจอกับตัวอย่างdocker runคำสั่งที่ทำให้ฉันสับสนเล็กน้อย docker run -itd ubuntu:xenial /bin/bash คำถามของฉันคืออะไรคือสิ่งที่ควรเขียน-itแฟล็กที่นี่หากคอนเทนเนอร์ระหว่างการรันbin/bash ในเอกสารประกอบเรามีตัวอย่าง docker run --name test -it debian พร้อมคำอธิบาย -it สั่งให้ Docker จัดสรร pseudo-TTY ที่เชื่อมต่อกับ stdin ของคอนเทนเนอร์ การสร้าง bash shell แบบโต้ตอบในคอนเทนเนอร์ และคำอธิบายสำหรับแฟล็ก -t จากหน้าวิธีใช้ -t, --tty จัดสรร pseudo-TTY ถ้าฉันลบ -it แฟล็กระหว่าง docker run -d ubuntu:xenial /bin/bash คอนเทนเนอร์ที่สร้างขึ้นใหม่ของฉันไม่ได้อยู่มากนัก ใน docker …
118 docker  dockerfile 

3
Docker Compose - แชร์ไดรฟ์ข้อมูลที่มีชื่อระหว่างหลายคอนเทนเนอร์
ฉันใช้ Docker-compose และ v3.0 ฉันกำลังพยายามเพิ่มโวลุ่มในนักเทียบท่า: ./appdata:/appdata ฉันต้องการให้สิ่งนี้เป็นไดรฟ์ข้อมูลแล้วอ้างอิงไดรฟ์ข้อมูลนั้นจากหลายคอนเทนเนอร์ การอ้างอิงคอนฟิกูเรชันของโวลุ่มจะแสดงdata-volume:เป็นไดรฟ์ข้อมูลที่มีชื่อเท่านั้นโดยไม่มีค่าดังนั้นจึงไม่เหมือนกับด้านบน services: nginx: build: ./nginx/ ports: - 80:80 links: - php volumes: - app-volume php: build: ./php/ expose: - 9000 volumes: - app-volume volumes: app-volume: ./appdata:/appdata สิ่งนี้ทำให้ฉัน: ข้อผิดพลาด: ในไฟล์ "./docker-compose.yml", volume "app-volume" ต้องเป็นการแมปที่ไม่ใช่สตริง เห็นได้ชัดว่าฉันรู้ว่าฉันจำเป็นต้องเปลี่ยนvolumesคู่คีย์ / ค่า แต่ฉันไม่แน่ใจว่าจะเปลี่ยนอย่างไรจึงจะสามารถแชร์ระดับเสียงระหว่างบริการได้ ฉันได้ตรวจสอบแล้วvolumes_fromแต่สิ่งนี้อนุญาตให้สืบทอดจากคอนเทนเนอร์อื่นได้อย่างมีประสิทธิภาพ ฉันเคยเห็นใครบางคนใช้volumes_fromกับคอนเทนเนอร์อื่นที่มีการทำแผนที่ที่พวกเขาต้องการ แต่ด้วยการcommand: trueตั้งค่าเพื่อไม่ให้คอนเทนเนอร์ทำงานจริงซึ่งสำหรับฉันดูเหมือนว่าเป็นการแฮ็ก ฉันจะทำเช่นนี้ได้อย่างไร? หมายเหตุผมไม่ได้มีการทำงานต่อไปนี้: …

2
ฉันจะเพิ่มผู้ใช้ได้อย่างไรเมื่อฉันใช้ Alpine เป็นภาพพื้นฐาน
ฉันใช้alpine(หรือรูปภาพที่อิงจาก Alpine) เป็นรูปภาพพื้นฐานใน Dockerfile ฉันต้องเพิ่มคำแนะนำใดเพื่อสร้างผู้ใช้ ในที่สุดฉันจะใช้ผู้ใช้รายนี้เพื่อเรียกใช้แอปพลิเคชันที่ฉันจะวางลงในคอนเทนเนอร์เพื่อไม่ให้ผู้ใช้รูท
118 docker  alpine 

2
Docker: มีปัญหาในการติดตั้ง apt-utils
ฉันพยายามติดตั้งapt-utilsบน Docker เพราะตอนที่เพิ่งทำapt-get updateฉันได้รับข้อผิดพลาด: debconf: delaying package configuration, since apt-utils is not installed. ดังนั้นฉันจึงเพิ่มบรรทัดเพื่อติดตั้งapt-utils(พร้อมกับcurl): RUN apt-get update && apt-get install -y apt-utils && apt-get install -y curl แต่ฉันยังคงได้รับข้อผิดพลาดนั้นทำให้ฉันเชื่อว่าคำสั่งของฉันไม่ได้ผล ด้านล่างนี้คือผลลัพธ์ของฉันเมื่อฉันพยายามสร้างภาพ Step 5/12 : RUN apt-get update && apt-get install -y apt-utils && apt-get install -y curl ---> Running in 6e6565ff01bd Get:1 …
118 docker  apt 

10
วิธีตรวจสอบว่ามีอิมเมจ Docker พร้อมแท็กเฉพาะอยู่ในเครื่องหรือไม่?
ฉันต้องการทราบว่ามีอิมเมจ Docker ที่มีแท็กเฉพาะอยู่ในเครื่องหรือไม่ ฉันสบายดีโดยใช้สคริปต์ทุบตีหากไคลเอนต์ Docker ไม่สามารถทำสิ่งนี้ได้ เพียงเพื่อให้คำแนะนำสำหรับสคริปต์ทุบตีที่เป็นไปได้ผลลัพธ์ของการรันdocker imagesคำสั่งจะส่งคืนสิ่งต่อไปนี้: REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE rabbitmq latest e8e654c05c91 5 weeks ago 143.5 MB busybox latest 8c2e06607696 6 weeks ago 2.433 MB rabbitmq 3.4.4 a4fbaad9f996 11 weeks ago 131.5 MB
117 bash  docker 

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