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

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

2
apt-add-repository: คำสั่งไม่พบข้อผิดพลาดใน Dockerfile
ฉันเพิ่งสร้างไฟล์ Docker ง่ายๆในเทอร์มินัลของฉันโดยพื้นฐานแล้วฉันทำสิ่งต่อไปนี้: mkdir pgrouted cd pgrouted touch Dockerfile ตอนนี้ฉันเปิดไฟล์ Docker ในตัวแก้ไขนาโนและฉันเพิ่มคำสั่งต่อไปนี้ในไฟล์ Docker: FROM ubuntu MAINTAINER Gautam <gautamx07@yahoo.com> LABEL Description="pgrouting excercise" Vendor="skanatek" Version="1.0" ENV BBOX="-122.8,45.4,-122.5,45.6" # Add pgRouting launchpad repository RUN sudo apt-add-repository -y ppa:ubuntugis/ppa RUN sudo apt-add-repository -y ppa:georepublic/pgrouting RUN sudo apt-get update # Install pgRouting package (for Ubuntu …
92 docker 

21
คุณกำลังพยายามต่อเชื่อมไดเรกทอรีเข้ากับไฟล์ (หรือในทางกลับกัน)?
17.06.0-ceฉันมีนักเทียบท่ากับรุ่น เมื่อฉันพยายามติดตั้ง NGINX โดยใช้นักเทียบท่าพร้อมคำสั่ง: docker run -p 80:80 -p 8080:8080 --name nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:latest ก็แสดงว่า นักเทียบท่า: การตอบสนองข้อผิดพลาดจาก daemon: oci ข้อผิดพลาดรันไทม์: container_linux.go: 262: การเริ่มต้นกระบวนการคอนเทนเนอร์ทำให้เกิด "process_linux.go: 339: container init ทำให้เกิด \" rootfs_linux.go: 57: installation \\ "/ appdata / nginx / conf / nginx.conf \\ "เพื่อ rootfs …
92 docker  nginx 

3
Dockerignore: ละเว้นทุกอย่างยกเว้นไฟล์และ Dockerfile
ดังนั้นความตั้งใจหลักคือการเทียบเคียงแอปพลิเคชันโถไขมันและใส่ลงใน Elasticbeanstalk ปัญหาอยู่ที่บริบท มันค่อนข้างโง่เล็กน้อยที่จะเพิ่มบริบทให้กับนักเทียบท่าถ้าสิ่งที่ฉันต้องการคือไฟล์ jar เดียว ฉันเล่นกับไฟล์. dockerignore มาแล้ว แต่ฉันหลงทาง ฉันพยายามใช้การปฏิเสธ gitignore แต่ไม่ได้ผล * !Dockerfile */ !target/ target/* !target/*.jar นอกจากนี้ยังมีสิ่งนั้นด้วย regex แต่ดูเหมือนว่าไม่รองรับ regex ที่ซับซ้อน ^((?!Dockerfile).)*$ ฉันได้ลองค้นหาใน stackoverflow แล้วและสองสิ่งนี้คือทั้งหมดที่ฉันพบ: ข้อยกเว้นใน. dockerignore มีวิธีลบล้างรูปแบบใน. dockerignore หรือไม่ คำถามนี้อาจคล้ายกับคำถามที่สอง แต่ฉันคิดว่ามันแตกต่างกันเล็กน้อยตั้งแต่ที่นี่ฉันแค่ต้องการรวมไฟล์เดียวลงในบริบท ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.
92 docker 

13
Docker - คอนเทนเนอร์ไม่ทำงาน
ฉันเป็นมือใหม่สำหรับนักเทียบท่า ฉันพยายามเริ่มคอนเทนเนอร์ที่ออกแล้วดังนี้ ฉันแสดงรายการคอนเทนเนอร์ที่มีอยู่ทั้งหมดโดยใช้docker ps -aไฟล์. มีรายการดังต่อไปนี้: ฉันป้อนคำสั่งต่อไปนี้เพื่อเริ่มคอนเทนเนอร์ซึ่งอยู่ในขั้นตอนออกและเข้าไปในเทอร์มินัลของรูปภาพนั้น docker start 79b3fa70b51d docker exec -it 79b3fa70b51d /bin/sh กำลังส่งข้อผิดพลาดต่อไปนี้ FATA[0000] Error response from daemon: Container 79b3fa70b51d is not running docker start 79b3fa70b51dแต่เมื่อผมเริ่มต้นภาชนะที่ใช้ มันพ่น ID คอนเทนเนอร์เป็นเอาต์พุตซึ่งเป็นเรื่องปกติหากทุกอย่างทำงานได้ตามปกติ ฉันไม่แน่ใจว่าอะไรเป็นสาเหตุของข้อผิดพลาดนี้ ความคิดใด ๆ เกี่ยวกับสาเหตุและข้อเสนอแนะเกี่ยวกับเรื่องนี้จะเป็นประโยชน์อย่างมากสำหรับฉัน ขอบคุณล่วงหน้า.

5
วิธีสื่อสารระหว่าง Docker container ผ่าน“ hostname”
ฉันวางแผนที่จะแยกเซิร์ฟเวอร์ monolthic ของฉันออกเป็นคอนเทนเนอร์ Docker ขนาดเล็กจำนวนมาก แต่ยังไม่พบวิธีแก้ปัญหาที่ดีสำหรับ "การสื่อสารระหว่างคอนเทนเนอร์" นี่คือสถานการณ์เป้าหมายของฉัน: ฉันรู้วิธีเชื่อมโยงคอนเทนเนอร์เข้าด้วยกันและวิธีแสดงพอร์ต แต่ไม่มีวิธีใดที่ฉันพอใจ มีวิธีใดในการสื่อสารผ่านชื่อโฮสต์ (ชื่อคอนเทนเนอร์) ระหว่างคอนเทนเนอร์เช่นเดียวกับในเครือข่ายเซิร์ฟเวอร์แบบเดิมหรือไม่

3
วิธีรีสตาร์ท Docker Container ที่หยุดทำงาน
ฉันเรียกใช้ Docker container จากรูปภาพด้วยคำสั่งต่อไปนี้: $ docker run -d myimage /bin/bash -c "mycommand" เมื่อ"mycommand"เสร็จสิ้นคอนเทนเนอร์จะหยุดทำงาน (ฉันคิดว่ามันถูกหยุด) แต่มันไม่ได้ถูกลบออกเพราะฉันสามารถมองเห็นได้ด้วยคำสั่งนี้: $ docker ps -a มีวิธีใดบ้างที่ไปยังrestartคอนเทนเนอร์นี้ด้วยพารามิเตอร์เดียวกันและเก็บข้อมูลที่สร้างโดยmycommand?
91 docker 

13
นำเข้า data.sql MySQL Docker Container
หากฉันมี data.sql ฉันจะนำเข้าฐานข้อมูลไปยัง mysql docker container ได้อย่างไร ฉันจะนำเข้าข้อมูลฐานข้อมูลได้อย่างไร ในโลกของนักเทียบท่าสิ่งนี้จะเพิ่มความซับซ้อนอีกชั้น โปรดใช้วิธีการบางอย่าง ที่นี่ docker-compose.yml ของฉัน: nginx: build: ./nginx/ container_name: nginx-container ports: - 80:80 links: - php volumes_from: - app-data php: build: ./php/ container_name: php-container expose: - 9000 links: - mysql volumes_from: - app-data app-data: image: php:7.0-fpm container_name: app-data-container volumes: - ./www/html/:/var/www/html/ command: …
91 mysql  docker 

4
วิธีที่ถูกต้องในการเพิ่มข้อมูลไปยังไดรฟ์ข้อมูลที่มีชื่อที่มีอยู่ใน Docker คืออะไร?
ฉันใช้ Docker แบบเก่าโดยมี Volume Container: docker run -d --name jenkins-data jenkins:tag echo "data-only container for Jenkins" แต่ตอนนี้ฉันเปลี่ยนเป็นวิธีใหม่โดยสร้างไดรฟ์ข้อมูลที่มีชื่อ: docker volume create --name my-jenkins-volume ฉันผูกโวลุ่มใหม่นี้กับคอนเทนเนอร์เจนกินส์ใหม่ สิ่งเดียวที่ฉันทิ้งไว้คือโฟลเดอร์ที่ฉันมี/var/jenkins_homeคอนเทนเนอร์ของเจนกินส์ก่อนหน้านี้ (โดยใช้docker cp) ตอนนี้ฉันต้องการเติมไดรฟ์ข้อมูลที่มีชื่อใหม่ของฉันด้วยเนื้อหาของโฟลเดอร์นั้น ฉันสามารถคัดลอกเนื้อหาของโฟลเดอร์นั้นไปที่/var/lib/jenkins/volume/my-jenkins-volume/_data?
91 docker 


4
วิธีการเทียบเคียงโครงการ maven? และมีกี่วิธีที่จะทำให้สำเร็จ?
ฉันยังใหม่กับ Docker และไม่รู้วิธีรันโปรเจ็กต์ java ด้วย maven แม้ว่าฉันจะอ่านเอกสารมากมายและลองหลายวิธีแล้วก็ตาม ฉันควรสร้างภาพโดยใช้Dockerfile? คำสั่งเช่นเมื่อเรียกใช้โครงการ maven ในโฮสต์ด้วยDockerfileอะไร?
90 java  maven  docker 

9
การใช้ Docker-compose กับ CI - จะจัดการกับรหัสออกและคอนเทนเนอร์ที่เชื่อมต่อกับ daemonized ได้อย่างไร?
ตอนนี้ตัวแทน Jenkins ของเราสร้าง docker-compose.yml สำหรับแต่ละโปรเจ็กต์ Rails ของเราแล้วเรียกใช้ docker-compose docker-compose.yml มีคอนเทนเนอร์ "เว็บ" หลักที่มี rbenv และการอ้างอิง Rails อื่น ๆ ทั้งหมดของเราภายใน เชื่อมโยงกับคอนเทนเนอร์ DB ที่มี Postgres DB ทดสอบ ปัญหาเกิดขึ้นเมื่อเราต้องเรียกใช้การทดสอบและสร้างรหัสทางออก เซิร์ฟเวอร์ CI ของเราจะปรับใช้ก็ต่อเมื่อสคริปต์ทดสอบส่งคืน exit 0 แต่ docker-compose จะคืนค่า 0 เสมอแม้ว่าคำสั่งคอนเทนเนอร์ใดคำสั่งหนึ่งจะล้มเหลวก็ตาม ปัญหาอื่น ๆ คือคอนเทนเนอร์ DB ทำงานไปเรื่อย ๆ แม้ว่าเว็บคอนเทนเนอร์จะเรียกใช้การทดสอบเสร็จแล้วก็ตามดังนั้นdocker-compose upอย่าส่งคืน มีวิธีใดบ้างที่เราสามารถใช้นักเทียบท่าเขียนสำหรับกระบวนการนี้ เราจะต้องสามารถเรียกใช้คอนเทนเนอร์ได้ แต่ออกหลังจากที่เว็บคอนเทนเนอร์เสร็จสมบูรณ์และส่งคืนรหัสทางออก ตอนนี้เราติดอยู่ด้วยตนเองโดยใช้นักเทียบท่าเพื่อหมุนคอนเทนเนอร์ DB และเรียกใช้คอนเทนเนอร์เว็บด้วยตัวเลือก --link

6
วิธีเชื่อมต่อกับ Docker container จากภายนอกโฮสต์ (เครือข่ายเดียวกัน) [Windows]
ฉันได้สร้างคอนเทนเนอร์นักเทียบท่าแรกของฉันมันใช้งานเซิร์ฟเวอร์โดยใช้ Go แต่ฉันไม่สามารถเข้าถึงจากภายนอกคอมพิวเตอร์โฮสต์ ฉันเพิ่งเริ่มต้นด้วยนักเทียบท่าดังนั้นฉันจึงหลงทางที่นี่เล็กน้อย ดังนั้นฉันจึงมีโค้ด Go ที่ง่ายมากที่เริ่มต้นเซิร์ฟเวอร์ฉันได้สร้างอิมเมจนักเทียบท่าที่ติดตั้ง Go และสร้างโค้ดในอิมเมจพื้นฐานของ Linux ฉันใช้งานเซิร์ฟเวอร์บนพอร์ต 8080 ดังนั้นฉันจึงเปิดเผยพอร์ตนั้นกับโฮสต์ที่เรียกใช้คอนเทนเนอร์ดังนี้: docker run -p 8080:8080 dockertest ใช้งานได้และฉันสามารถเข้าถึงเซิร์ฟเวอร์ผ่าน IP เครื่องของนักเทียบท่า (อันที่ปรากฏบนDocker Quickstart Terminalเมื่อเริ่มต้น) ปัญหาคือฉันไม่สามารถเข้าถึงเว็บไซต์ที่ฉันโฮสต์จากภายนอกโฮสต์ได้ดังนั้นถ้าฉันลอง เพื่อเปิดที่อยู่ IP เดียวกันบนโทรศัพท์ของฉันมันทำให้ฉันมีข้อผิดพลาด: หน้าเว็บนี้ไม่พร้อมใช้งาน (ERR_CONNECTION_TIMED_OUT) ฉันได้ลองระบุ IP เช่นนี้ด้วย: docker run -p 192.168.0.157:8080:8080 dockertest แต่เมื่อฉันทำเช่นนั้นฉันสามารถเข้าถึงเว็บไซต์ผ่าน IP ของเครื่องเทียบท่าหรือ IP ที่ระบุในบรรทัดคำสั่งด้านบน ฉันไม่แน่ใจว่าควรจะเขียน IP ใดในคำสั่งนั้นฉันใช้ IP ของคอมพิวเตอร์ฉันได้ลอง 127.0.0.1 (localhost) …

9
วิธีตรวจสอบว่ากระบวนการกำลังทำงานอยู่ภายใน Docker container หรือไม่
[อัปเดต 1] ฉันมีเชลล์ซึ่งจะเปลี่ยนพารามิเตอร์เคอร์เนล TCP ในบางฟังก์ชัน แต่ตอนนี้ฉันจำเป็นต้องทำให้เชลล์นี้ทำงานในคอนเทนเนอร์ Docker นั่นหมายความว่าเชลล์จำเป็นต้องรู้ว่ามันกำลังทำงานอยู่ภายในคอนเทนเนอร์และหยุดการกำหนดค่าเคอร์เนล ตอนนี้ฉันไม่แน่ใจว่าจะบรรลุได้อย่างไรนี่คือเนื้อหา/proc/self/cgroupภายในคอนเทนเนอร์: 9:hugetlb:/ 8:perf_event:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct:/ 2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b 1:cpuset:/ แฟล็กใด ๆ ด้านบนที่ฉันสามารถใช้เพื่อดูว่ากระบวนการนี้กำลังทำงานอยู่ในคอนเทนเนอร์หรือไม่ [อัปเดต 2]: ฉันสังเกตเห็นด้วยว่าการพิจารณาว่ากระบวนการทำงานภายใน lxc / Dockerหรือไม่ แต่ดูเหมือนว่าจะไม่ทำงานในกรณีนี้เนื้อหาใน/proc/1/cgroupคอนเทนเนอร์ของฉันคือ 8:perf_event:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct:/ 2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b 1:cpuset:/ ไม่ใช่ / lxc / containerid

7
การรันสคริปต์ภายในคอนเทนเนอร์นักเทียบท่าโดยใช้เชลล์สคริปต์
ฉันกำลังพยายามสร้างเชลล์สคริปต์สำหรับการตั้งค่าคอนเทนเนอร์นักเทียบท่า ไฟล์สคริปต์ของฉันดูเหมือนว่า: #!bin/bash docker run -t -i -p 5902:5902 --name "mycontainer" --privileged myImage:new /bin/bash การเรียกใช้ไฟล์สคริปต์นี้จะเรียกใช้คอนเทนเนอร์ใน bash ที่เรียกใหม่ ตอนนี้ฉันต้องเรียกใช้ไฟล์สคริปต์ (test.sh) ซึ่งอยู่ในคอนเทนเนอร์แล้วจากเชลล์สคริปต์ที่กำหนดด้านบน (เช่น cd /path/to/test.sh && ./test.sh) จะทำอย่างไร?
89 bash  shell  docker 

4
ใบรับรอง ssl คอนเทนเนอร์ของนักเทียบท่า
มีวิธีที่สวยงามในการเพิ่มใบรับรอง ssl ให้กับภาพที่มาจาก docker pull หรือไม่? ฉันกำลังมองหาวิธีที่ง่ายและทำซ้ำได้ในการเพิ่มไฟล์ลงใน / etc / ssl / certs และเรียกใช้ update-ca-certificate (ควรครอบคลุมอิมเมจของอูบุนตูและเดเบียน) ฉันใช้นักเทียบท่าบน CoreOS และเครื่อง coreos เชื่อถือใบรับรอง ssl ที่จำเป็น แต่คอนเทนเนอร์นักเทียบท่ามีเฉพาะค่าเริ่มต้นเท่านั้น ฉันได้ลองใช้docker run --entrypoint=/bin/bashเพื่อเพิ่มใบรับรองแล้วเรียกใช้update-ca-certificatesแต่ดูเหมือนว่าจะแทนที่จุดเข้าอย่างถาวร ตอนนี้ฉันก็สงสัยเหมือนกันว่าจะสวยกว่าไหมถ้าจะติด/etc/ssl/certsบนคอนเทนเนอร์จากเครื่องโฮสต์ก็อปปี้ การทำเช่นนี้จะทำให้คอนเทนเนอร์เชื่อถือสิ่งเดียวกับโฮสต์โดยปริยาย ฉันทำงานกับพร็อกซีที่น่ารำคาญซึ่งจะลาออกทุกอย่าง :( ซึ่งทำลาย SSL และทำให้คอนเทนเนอร์แปลก ๆ ที่จะใช้งานได้

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