dnmp如何在启动的时候也启动起手动安装的容器

1. 问题描述

因为使用golang 开发微服务需要使用etcdetcd-keeper,所以在/dnmp/docker-compose.yml文件中加入:

...
 etcd:

 hostname: etcd

 container_name: etcd

 image: bitnami/etcd:3

 deploy:

 replicas: 1

 restart_policy:

 condition: on-failure

 # ports:

 #   - "2379:2379"

 #   - "2380:2380"

 #   - "4001:4001"

 #   - "7001:7001"

 privileged: true

 volumes:

 # - "/docker/compose/etcd/data:/bitnami/etcd/data:rw"

- ${DATA_DIR}/etcd:/data/:rw

 environment:

- "ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379"

- "ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379"

- "ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380"

- "ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380"

 #参数指不用密码可以连接

- "ALLOW_NONE_AUTHENTICATION=yes"

- "ETCD_INITIAL_CLUSTER=node1=http://0.0.0.0:2380"

- "ETCD_NAME=node1"

- "ETCD_DATA_DIR=/opt/bitnami/etcd/data"

 ports:

- 2379:2379

- 2380:2380

 # networks:

 #   - etcdnet

 etcd-keeper:

 image: evildecay/etcdkeeper

 container_name: etcd-keeper

 ports:

- 8090:8080

 environment:

- ETCD_SERVERS=http://0.0.0.0:2379

使用指令成功构建容器:

docker-compose build xxx

但是每次启动docker-desktop的时候默认系统自带的php相关(多版本),mysql相关(多版本),nginx等容器是默认启动的。但是手动安装的两个容器etcdetcd-keeper默认就是关闭的状态,每次开启的时候就需要手动去操作。

3. 您期望得到的结果?

问题一:如何在启动docker-desktop的时候启动手动安装的容器?是否是需要像dnmp自带的默认容器一样,需要在文件夹下进行配置?

问题二:日常开发,如果我需要进行golang的开发,是否直接安装golang的相关容器,进行部署即可?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

在你的compose.yml中把总是启动的参数带上,docker重启的时候容器会自动启动 这个参数:restart: always

3个月前 评论
她来听我的演唱会 (楼主) 3个月前
小煜 (作者) 3个月前
小煜 (作者) 3个月前
她来听我的演唱会 (楼主) 3个月前
讨论数量: 7
sanders

我记得 docker-compose 启动容器应该是 docker compose up -D

如果没有特殊配置,按道理说应该一起启动,看一下是不是启动后又自己退出了,如果服务之间有依赖的话可能会出这种情况,如果存在这种情况则需要配置容器间的依赖关系,来调整启动顺序。

3个月前 评论
她来听我的演唱会 (楼主) 3个月前

在你的compose.yml中把总是启动的参数带上,docker重启的时候容器会自动启动 这个参数:restart: always

3个月前 评论
她来听我的演唱会 (楼主) 3个月前
小煜 (作者) 3个月前
小煜 (作者) 3个月前
她来听我的演唱会 (楼主) 3个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!