เมื่อฉันโฮสต์ไซต์ WordPress ในคอนเทนเนอร์นักเทียบท่าและฉันต้องการให้คอนเทนเนอร์เหล่านี้เริ่มต้นในเวลาบูตเสมอดังนั้นต้องทำด้วยตนเอง
เมื่อฉันโฮสต์ไซต์ WordPress ในคอนเทนเนอร์นักเทียบท่าและฉันต้องการให้คอนเทนเนอร์เหล่านี้เริ่มต้นในเวลาบูตเสมอดังนั้นต้องทำด้วยตนเอง
คำตอบ:
จนถึงตอนนี้ฉันไม่คิดว่าจะมีวิธีการทำเช่นนั้นตามปกติ ทางออกที่ยุ่งยากคือการใช้นโยบายการเริ่มต้นใหม่
sudo docker run --restart=always -d your_image
ซึ่งหมายความว่าเมื่อใดก็ตามที่คุณปิดระบบจะออกจากคอนเทนเนอร์ของคุณเพื่อเริ่มโฮสต์จากนั้นจึงนำไปสู่การรีสตาร์ทตัวเชื่อมต่อ
มันเป็นกรณีการใช้งานทั่วไปมากที่จะเพิ่มนโยบายการเริ่มต้นใหม่ในภาชนะที่มีอยู่
สิ่งนี้สามารถทำได้ด้วยคำสั่งต่อไปนี้:
docker update --restart {no,on-failure,unless-stopped,always} container_name
รายละเอียดเพิ่มเติม: นักเทียบท่า - เริ่มต้นคอนเทนเนอร์โดยอัตโนมัติ
ในขณะนี้ ubuntu 15 รองรับ systemd, ตัวอย่างสำหรับผู้จัดการรายนี้:
someservicename.service
[Unit]
Description=Some service
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a container_name
ExecStop=/usr/bin/docker stop -t 2 container_name
[Install]
WantedBy=multi-user.target
พร้อมใช้งานเพิ่มเติมบนไซต์ของนักเทียบท่า
PS Pretty น่ารัก config :)
สิ่งที่ฉันทำคือการใช้ไฟล์พุ่งพรวด
คุณสามารถค้นหาตัวอย่างบางส่วนและการแก้ปัญหาอื่น ๆ ในเว็บไซต์เทียบท่า
สร้างไฟล์เช่นนั้นใน / etc / init:
Description "My container"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
/usr/bin/docker start -a mycontainer
end script
pre-stop script
/usr/bin/docker stop mycontainer
end script
หมายเหตุจาก Docker 1.2 มีนโยบายการรีสตาร์ทซึ่งอาจช่วยในการรีสตาร์ทคอนเทนเนอร์โดยอัตโนมัติเมื่อมีการเรียกใช้บริการนักเทียบท่า (หลังจากบูตเป็นต้น)
โดยส่วนตัวแล้วฉันใช้หุ่นเชิดเพื่อเตรียมเวิร์กสเตชันของฉันและใช้โมดูล Dockerนี้เพื่อสร้างสคริปต์เริ่มต้นโดยอัตโนมัติซึ่งสมบูรณ์มากขึ้น (เริ่มหยุดหยุดรีสตาร์ทตัวเลือกใหม่ทั้งหมด ... )