gpt4 book ai didi

docker - 如何在启动 lubuntu 时自动运行 docker-compose?

转载 作者:行者123 更新时间:2023-12-04 18:28:49 26 4
gpt4 key购买 nike

我的旧电脑上有 lubuntu 21.04。一切都是最新的。我安装 docker 和 docker-compose:

sudo apt install docker docker-compose
sudo systemctl enable --now docker
之后在主目录中创建文件夹 web 与我的项目。文件夹结构 ~/web以下:
.
├── docker-compose.yml
├── dockerfiles
│   ├── lg4
│   ├── test
│   └── test2
└── www
├── lg4
├── test
└── test2
所有服务都有 restart docker-compose.yml中的贬义词:
version: '3.7'

volumes:
mysql-volume:
networks:
app-shared:
driver: bridge
web_app-shared:
external: true
services:
php-httpd-lg4:
restart: always
build:
args:
user: lg4
uid: 1000
context: ./dockerfiles/lg4/
ports:
- 80:80
volumes:
- "./www/lg4:/var/www/html"
links:
- database
networks:
- app-shared
- web_app-shared
php-httpd-test:
restart: always
build:
args:
user: test
uid: 1000
context: ./dockerfiles/test/
ports:
- 82:80
volumes:
- "./www/test:/var/www/html"
links:
- database
networks:
- app-shared
- web_app-shared
php-httpd-test2:
restart: always
build:
args:
user: test
uid: 1000
context: ./dockerfiles/test2/
ports:
- 81:80
volumes:
- "./www/test2:/var/www/html"
links:
- database
networks:
- app-shared
- web_app-shared
database:
restart: always
image: mysql:5.7
restart: always
volumes:
- mysql-volume:/var/lib/mysql
ports:
- 3306:3306
networks:
- app-shared
- web_app-shared
environment:
TZ: "Europe/Moskow"
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: 'admin'
MYSQL_PASSWORD: 'admin'
MYSQL_DATABASE: 'lg4'
phpmyadmin:
restart: always
image: phpmyadmin/phpmyadmin
links:
- 'database:db'
ports:
- 8081:80
environment:
UPLOAD_LIMIT: 300M
networks:
- app-shared
- web_app-shared
当我运行命令 sudo docker-compose up -d 时一切正常来自 ~/web目录但是,我怎样才能在启动系统上自动启动所有这些,而无需每次都在终端中输入任何命令呢?

最佳答案

是的,docker 有重启策略,比如 docker run --restart=always 可以处理这个问题。这也可以在 compose.yml 配置文件中作为 restart: always 使用。
为了启用重启策略,您需要在执行 docker run 时使用 --restart 参数。
在我的情况下,我决定将 --restart 标志与 unless-stopped 参数一起使用,这样我的容器将在它们崩溃甚至重新启动后重新启动。这是我必须使用的命令示例:

docker run -dit --restart unless-stopped httpd
如果你有一个已经在运行的容器,你想改变它的重启策略,你可以使用 docker update 命令来改变它:
docker update --restart unless-stopped container_id
有关更多信息,您可以在此处查看官方文档:
https://docs.docker.com/config/containers/start-containers-automatically/

关于docker - 如何在启动 lubuntu 时自动运行 docker-compose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68562727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com