Run update.sh

This commit is contained in:
Docker Library Bot 2019-01-12 00:09:27 +00:00
parent ab1f3787fa
commit 52de848bcc
4 changed files with 184 additions and 32 deletions

View File

@ -22,8 +22,8 @@ WARNING:
- [`20.3.8.17`, `20.3.8`, `20.3`, `20` (*20/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/d1d59c1af4e4975e4df6eb31cc50c65b9f9ba83c/20/Dockerfile) - [`20.3.8.17`, `20.3.8`, `20.3`, `20` (*20/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/d1d59c1af4e4975e4df6eb31cc50c65b9f9ba83c/20/Dockerfile)
- [`20.3.8.17-slim`, `20.3.8-slim`, `20.3-slim`, `20-slim` (*20/slim/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/d1d59c1af4e4975e4df6eb31cc50c65b9f9ba83c/20/slim/Dockerfile) - [`20.3.8.17-slim`, `20.3.8-slim`, `20.3-slim`, `20-slim` (*20/slim/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/d1d59c1af4e4975e4df6eb31cc50c65b9f9ba83c/20/slim/Dockerfile)
- [`20.3.8.17-alpine`, `20.3.8-alpine`, `20.3-alpine`, `20-alpine` (*20/alpine/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/d1d59c1af4e4975e4df6eb31cc50c65b9f9ba83c/20/alpine/Dockerfile) - [`20.3.8.17-alpine`, `20.3.8-alpine`, `20.3-alpine`, `20-alpine` (*20/alpine/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/d1d59c1af4e4975e4df6eb31cc50c65b9f9ba83c/20/alpine/Dockerfile)
- [`19.3.6.12`, `19.3.6`, `19.3`, `19` (*19/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/8815a0c2ce5282dbf08553f602e5214e4e9631ce/19/Dockerfile) - [`19.3.6.13`, `19.3.6`, `19.3`, `19` (*19/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/7b9e1d54cf93f53b9ace21b9103588c77c198d2f/19/Dockerfile)
- [`19.3.6.12-slim`, `19.3.6-slim`, `19.3-slim`, `19-slim` (*19/slim/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/145d4a0002206e003cc76c8719b6264529165889/19/slim/Dockerfile) - [`19.3.6.13-slim`, `19.3.6-slim`, `19.3-slim`, `19-slim` (*19/slim/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/7b9e1d54cf93f53b9ace21b9103588c77c198d2f/19/slim/Dockerfile)
- [`18.3.4.11`, `18.3.4`, `18.3`, `18` (*18/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/8815a0c2ce5282dbf08553f602e5214e4e9631ce/18/Dockerfile) - [`18.3.4.11`, `18.3.4`, `18.3`, `18` (*18/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/8815a0c2ce5282dbf08553f602e5214e4e9631ce/18/Dockerfile)
- [`18.3.4.11-slim`, `18.3.4-slim`, `18.3-slim`, `18-slim` (*18/slim/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/145d4a0002206e003cc76c8719b6264529165889/18/slim/Dockerfile) - [`18.3.4.11-slim`, `18.3.4-slim`, `18.3-slim`, `18-slim` (*18/slim/Dockerfile*)](https://github.com/erlang/docker-erlang-otp/blob/145d4a0002206e003cc76c8719b6264529165889/18/slim/Dockerfile)

121
express-gateway/README.md Normal file
View File

@ -0,0 +1,121 @@
<!--
********************************************************************************
WARNING:
DO NOT EDIT "express-gateway/README.md"
IT IS AUTO-GENERATED
(from the other files in "express-gateway/" combined with a set of templates)
********************************************************************************
-->
# Supported tags and respective `Dockerfile` links
- [`1.x`, `1.14.x`, `1.14.0`, `latest` (*alpine/Dockerfile*)](https://github.com/ExpressGateway/docker-express-gateway/blob/ff6e4d728bf4a83cfe4be69ff10148010ad04903/alpine/Dockerfile)
# Quick reference
- **Where to get help**:
[the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)
- **Where to file issues**:
[https://github.com/ExpressGateway/express-gateway/issues](https://github.com/ExpressGateway/express-gateway/issues)
- **Maintained by**:
[the Express Gateway Team](https://github.com/ExpressGateway/express-gateway)
- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))
[`amd64`](https://hub.docker.com/r/amd64/express-gateway/), [`arm64v8`](https://hub.docker.com/r/arm64v8/express-gateway/), [`i386`](https://hub.docker.com/r/i386/express-gateway/), [`ppc64le`](https://hub.docker.com/r/ppc64le/express-gateway/), [`s390x`](https://hub.docker.com/r/s390x/express-gateway/)
- **Published image artifact details**:
[repo-info repo's `repos/express-gateway/` directory](https://github.com/docker-library/repo-info/blob/master/repos/express-gateway) ([history](https://github.com/docker-library/repo-info/commits/master/repos/express-gateway))
(image metadata, transfer size, etc)
- **Image updates**:
[official-images PRs with label `library/express-gateway`](https://github.com/docker-library/official-images/pulls?q=label%3Alibrary%2Fexpress-gateway)
[official-images repo's `library/express-gateway` file](https://github.com/docker-library/official-images/blob/master/library/express-gateway) ([history](https://github.com/docker-library/official-images/commits/master/library/express-gateway))
- **Source of this description**:
[docs repo's `express-gateway/` directory](https://github.com/docker-library/docs/tree/master/express-gateway) ([history](https://github.com/docker-library/docs/commits/master/express-gateway))
- **Supported Docker versions**:
[the latest release](https://github.com/docker/docker-ce/releases/latest) (down to 1.6 on a best-effort basis)
# What is Express-Gateway?
Express Gateway is an API Gateway that sits at the heart of any microservices architecture, regardless of what language or platform you're using. Express Gateway secures your microservices and exposes them through APIs using Node.js, ExpressJS and Express middleware. Developing microservices, orchestrating and managing them now can be done insanely fast all on one seamless platform without having to introduce additional infrastructure.
Express-Gateway's documentation can be found at [https://express-gateway.io/docs](https://express-gateway.io/docs).
## Main Features
- Built Entirely on Express and Express Middleware
- Dynamic Centralized Config
- API Consumer and Credentials Management
- Plugins and Plugin Framework
- Distributed Data Store
- CLI
- Admin API
![logo](https://raw.githubusercontent.com/docker-library/docs/8ee4b026326a61ab0ccf22634eacbbbfbfaaf678/express-gateway/logo.png)
## How to use this image
Unless you're using identity features (such as `users`, `applications` and `credentials`), Express-Gateway does not require any data storage.
If so, skip directly to the point **2**; else, please keep going with this guide.
### 1. Link Express-Gateway to a Redis container
#### Start Redis
Start a Redis container by executing:
```shell
$ docker run -d --name express-gateway-data-store \
-p 6379:6379 \
redis:alpine
```
### 2. Start the Express-Gateway instance
Once the Redis instance has been started (if required), we can start the Express-Gateway instance link it to the Redis container.
```shell
$ docker run -d --name express-gateway \
--link eg-database:eg-database \
-v /my/own/datadir:/var/lib/eg \
-p 8080:8080 \
-p 9876:9876 \
express-gateway
```
*Note:* You might want to expose other ports to the host in case you're serving your APIs through **HTTPS**.
*Note:* You need to mount a volume with configuration files and volumes in order to make Express-Gateway start correctly.
You can now read the docs at [express-gateway.io/docs](http://express-gateway.io/docs) to learn more about Express-Gateway and configure it accordingly to your needs.
### Install plugin
You can install custom plugins to the current Express Gateway image just creating a new `Dockerfile`, use `express-gateway` as base image and then install the required plugins as global yarn packages
```dockerfile
FROM express-gateway
RUN yarn add global express-gateway-plugin-name
```
# License
View [license information](https://github.com/ExpressGateway/express-gateway/blob/master/LICENSE) for the software contained in this image.
As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `express-gateway/` directory](https://github.com/docker-library/repo-info/tree/master/repos/express-gateway).
As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.

View File

@ -16,24 +16,15 @@ WARNING:
# Supported tags and respective `Dockerfile` links # Supported tags and respective `Dockerfile` links
- [`13.0.9RC2-apache`, `13.0.9-rc-apache`, `13.0-rc-apache`, `13-rc-apache`, `13.0.9RC2`, `13.0.9-rc`, `13.0-rc`, `13-rc` (*13.0-rc/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/d3853330f55561f9026857400be0736c55e74ad6/13.0-rc/apache/Dockerfile) - [`13.0.10-apache`, `13.0-apache`, `13-apache`, `13.0.10`, `13.0`, `13` (*13.0/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/442510be73733cc65b0dd3b7552e4b7b1c1e125c/13.0/apache/Dockerfile)
- [`13.0.9RC2-fpm-alpine`, `13.0.9-rc-fpm-alpine`, `13.0-rc-fpm-alpine`, `13-rc-fpm-alpine` (*13.0-rc/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/d3853330f55561f9026857400be0736c55e74ad6/13.0-rc/fpm-alpine/Dockerfile) - [`13.0.10-fpm-alpine`, `13.0-fpm-alpine`, `13-fpm-alpine` (*13.0/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/442510be73733cc65b0dd3b7552e4b7b1c1e125c/13.0/fpm-alpine/Dockerfile)
- [`13.0.9RC2-fpm`, `13.0.9-rc-fpm`, `13.0-rc-fpm`, `13-rc-fpm` (*13.0-rc/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/d3853330f55561f9026857400be0736c55e74ad6/13.0-rc/fpm/Dockerfile) - [`13.0.10-fpm`, `13.0-fpm`, `13-fpm` (*13.0/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/442510be73733cc65b0dd3b7552e4b7b1c1e125c/13.0/fpm/Dockerfile)
- [`13.0.8-apache`, `13.0-apache`, `13-apache`, `production-apache`, `13.0.8`, `13.0`, `13`, `production` (*13.0/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/13.0/apache/Dockerfile) - [`14.0.6-apache`, `14.0-apache`, `14-apache`, `stable-apache`, `14.0.6`, `14.0`, `14`, `stable` (*14.0/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/48f9b58e6f8b6fb0473a244718f8a9623b5be80e/14.0/apache/Dockerfile)
- [`13.0.8-fpm-alpine`, `13.0-fpm-alpine`, `13-fpm-alpine`, `production-fpm-alpine` (*13.0/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/13.0/fpm-alpine/Dockerfile) - [`14.0.6-fpm-alpine`, `14.0-fpm-alpine`, `14-fpm-alpine`, `stable-fpm-alpine` (*14.0/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/48f9b58e6f8b6fb0473a244718f8a9623b5be80e/14.0/fpm-alpine/Dockerfile)
- [`13.0.8-fpm`, `13.0-fpm`, `13-fpm`, `production-fpm` (*13.0/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/13.0/fpm/Dockerfile) - [`14.0.6-fpm`, `14.0-fpm`, `14-fpm`, `stable-fpm` (*14.0/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/48f9b58e6f8b6fb0473a244718f8a9623b5be80e/14.0/fpm/Dockerfile)
- [`14.0.5RC2-apache`, `14.0.5-rc-apache`, `14.0-rc-apache`, `14-rc-apache`, `14.0.5RC2`, `14.0.5-rc`, `14.0-rc`, `14-rc` (*14.0-rc/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/ce614ef0d4fbeda849e9d4242769c7d3e36289f4/14.0-rc/apache/Dockerfile) - [`15.0.2-apache`, `15.0-apache`, `15-apache`, `apache`, `15.0.2`, `15.0`, `15`, `latest` (*15.0/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/11a6e693713815014c5683ca5006697a69650fb1/15.0/apache/Dockerfile)
- [`14.0.5RC2-fpm-alpine`, `14.0.5-rc-fpm-alpine`, `14.0-rc-fpm-alpine`, `14-rc-fpm-alpine` (*14.0-rc/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/ce614ef0d4fbeda849e9d4242769c7d3e36289f4/14.0-rc/fpm-alpine/Dockerfile) - [`15.0.2-fpm-alpine`, `15.0-fpm-alpine`, `15-fpm-alpine`, `fpm-alpine` (*15.0/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/11a6e693713815014c5683ca5006697a69650fb1/15.0/fpm-alpine/Dockerfile)
- [`14.0.5RC2-fpm`, `14.0.5-rc-fpm`, `14.0-rc-fpm`, `14-rc-fpm` (*14.0-rc/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/ce614ef0d4fbeda849e9d4242769c7d3e36289f4/14.0-rc/fpm/Dockerfile) - [`15.0.2-fpm`, `15.0-fpm`, `15-fpm`, `fpm` (*15.0/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/11a6e693713815014c5683ca5006697a69650fb1/15.0/fpm/Dockerfile)
- [`14.0.4-apache`, `14.0-apache`, `14-apache`, `stable-apache`, `14.0.4`, `14.0`, `14`, `stable` (*14.0/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/14.0/apache/Dockerfile)
- [`14.0.4-fpm-alpine`, `14.0-fpm-alpine`, `14-fpm-alpine`, `stable-fpm-alpine` (*14.0/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/14.0/fpm-alpine/Dockerfile)
- [`14.0.4-fpm`, `14.0-fpm`, `14-fpm`, `stable-fpm` (*14.0/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/14.0/fpm/Dockerfile)
- [`15.0.1RC2-apache`, `15.0.1-rc-apache`, `15.0-rc-apache`, `15-rc-apache`, `rc-apache`, `15.0.1RC2`, `15.0.1-rc`, `15.0-rc`, `15-rc`, `rc` (*15.0-rc/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/4db869636b4c44e331f0d910ae0ed7e734087700/15.0-rc/apache/Dockerfile)
- [`15.0.1RC2-fpm-alpine`, `15.0.1-rc-fpm-alpine`, `15.0-rc-fpm-alpine`, `15-rc-fpm-alpine`, `rc-fpm-alpine` (*15.0-rc/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/4db869636b4c44e331f0d910ae0ed7e734087700/15.0-rc/fpm-alpine/Dockerfile)
- [`15.0.1RC2-fpm`, `15.0.1-rc-fpm`, `15.0-rc-fpm`, `15-rc-fpm`, `rc-fpm` (*15.0-rc/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/4db869636b4c44e331f0d910ae0ed7e734087700/15.0-rc/fpm/Dockerfile)
- [`15.0.0-apache`, `15.0-apache`, `15-apache`, `15.0.0`, `15.0`, `15` (*15.0/apache/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/15.0/apache/Dockerfile)
- [`15.0.0-fpm-alpine`, `15.0-fpm-alpine`, `15-fpm-alpine` (*15.0/fpm-alpine/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/15.0/fpm-alpine/Dockerfile)
- [`15.0.0-fpm`, `15.0-fpm`, `15-fpm` (*15.0/fpm/Dockerfile*)](https://github.com/nextcloud/docker/blob/31d7dedda906de8c4f387e17be7e16b55cb41031/15.0/fpm/Dockerfile)
# Quick reference # Quick reference

View File

@ -124,7 +124,7 @@ $ docker cp $HOME/mydata/mydata.xml my_solr:/opt/solr/mydata.xml
$ docker exec -it --user=solr my_solr bin/post -c gettingstarted mydata.xml $ docker exec -it --user=solr my_solr bin/post -c gettingstarted mydata.xml
``` ```
or by using Docker host volumes: or by mounting a host directory as a volume:
```console ```console
$ docker run --name my_solr -d -p 8983:8983 -t -v $HOME/mydata:/opt/solr/mydata solr $ docker run --name my_solr -d -p 8983:8983 -t -v $HOME/mydata:/opt/solr/mydata solr
@ -177,7 +177,7 @@ $ sudo chown 8983:8983 mycores
$ docker run -d -P -v $PWD/mycores:/opt/solr/server/solr/mycores solr solr-precreate mycore $ docker run -d -P -v $PWD/mycores:/opt/solr/server/solr/mycores solr solr-precreate mycore
``` ```
This second way is quicker, easier to monitor because it logs to the docker log, and can fail immediately if something is wrong. But, because it makes assumptions about Solr's "basic_configs", future upstream changes could break that. This second way is quicker, easier to monitor because it logs to the docker log, and can fail immediately if something is wrong.
The third way of creating a core at startup is to use the image extension mechanism explained in the next section. The third way of creating a core at startup is to use the image extension mechanism explained in the next section.
@ -204,29 +204,69 @@ volumes:
and just run `docker-compose up`. and just run `docker-compose up`.
## solr.in.sh configuration
In Solr it is common to configure settings in [solr.in.sh](https://github.com/apache/lucene-solr/blob/master/solr/bin/solr.in.sh), as documented in the [Solr Reference Guide](https://cwiki.apache.org/confluence/display/solr/Taking+Solr+to+Production#TakingSolrtoProduction-Environmentoverridesincludefile).
In docker-solr you can simply pass these environment variables to the container. For example:
```console
$ docker run -d -P -e SOLR_HEAP=800m solr
```
This works for Solr versions newer than 6.3.0. Older versions had some hardcoded defaults in `solr.in.sh`; see `docs/set-heap.sh` for how to modify that configuration.
## Custom SOLR_HOME
In Solr, it is common to specify a custom SOLR_HOME, to store cores and configuration in a different volume. In docker-solr, you can use that with mounted volumes:
```console
$ mkdir mysolrhome
$ sudo chown 8983:8983 mysolrhome
$ docker run -it -v $PWD/mysolrhome:/opt/mysolrhome -e SOLR_HOME=/opt/mysolrhome solr
```
Solr requires a solr.xml file and configsets in the SOLR_HOME, so you must provide that ahead of time. One way of doing that is to copy the default content before running Solr:
```console
$ docker run -it -v $PWD/mysolrhome:/opt/mysolrhome -e SOLR_HOME=/opt/mysolrhome solr \
bash -c "cp -R /opt/solr/server/solr/* /opt/mysolrhome"
$ docker run -it -v $PWD/mysolrhome:/opt/mysolrhome -e SOLR_HOME=/opt/mysolrhome solr
```
or, in a single command:
```console
$ docker run -it -v $PWD/mysolrhome:/opt/mysolrhome -e SOLR_HOME=/opt/mysolrhome solr \
bash -c "cp -R /opt/solr/server/solr/* /opt/mysolrhome && exec docker-entrypoint.sh solr-foreground"
```
As an added convenience, you can pass `-e INIT_SOLR_HOME=yes` to do that automatically (if SOLR_HOME is empty):
```console
$ docker run -it -v $PWD/mysolrhome:/opt/mysolrhome -e SOLR_HOME=/opt/mysolrhome -e INIT_SOLR_HOME=yes solr
```
## Extending the image ## Extending the image
The docker-solr image has an extension mechanism. At run time, before starting Solr, the container will execute scripts in the `/docker-entrypoint-initdb.d/` directory. You can add your own scripts there either by using mounted volumes or by using a custom Dockerfile. These scripts can for example copy a core directory with pre-loaded data for continuous integration testing, or modify the Solr configuration. The docker-solr image has an extension mechanism. At run time, before starting Solr, the container will execute scripts in the `/docker-entrypoint-initdb.d/` directory. You can add your own scripts there either by using mounted volumes or by using a custom Dockerfile. These scripts can for example copy a core directory with pre-loaded data for continuous integration testing, or modify the Solr configuration.
Here is a simple example. With a `set-heap.sh` script like: Here is a simple example. With a `custom.sh` script like:
```console ```console
#!/bin/bash #!/bin/bash
set -e set -e
cp /opt/solr/bin/solr.in.sh /opt/solr/bin/solr.in.sh.orig echo "this is running inside the container before Solr starts"
sed -e 's/SOLR_HEAP=".*"/SOLR_HEAP="1024m"/' </opt/solr/bin/solr.in.sh.orig >/opt/solr/bin/solr.in.sh
grep '^SOLR_HEAP=' /opt/solr/bin/solr.in.sh
``` ```
you can run: you can run:
```console ```console
$ docker run --name solr_heap1 -d -P -v $PWD/docs/set-heap.sh:/docker-entrypoint-initdb.d/set-heap.sh solr $ docker run --name solr_custom1 -d -P -v $PWD/custom.sh:/docker-entrypoint-initdb.d/custom.sh solr
$ sleep 5 $ sleep 5
$ docker logs solr_heap1 | head $ docker logs solr_custom1 | head
/opt/docker-solr/scripts/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/set-heap.sh /opt/docker-solr/scripts/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/set-heap.sh
SOLR_HEAP="1024m" this is running inside the container before Solr starts
Starting Solr on port 8983 from /opt/solr/server Starting Solr on port 8983 from /opt/solr/server
``` ```
@ -237,9 +277,9 @@ With this extension mechanism it can be useful to see the shell commands that ar
You can also run a distributed Solr configuration. You can also run a distributed Solr configuration.
The recommended and most flexible way to do that is to use Docker networking. See the [Can I run ZooKeeper and Solr clusters under Docker](https://github.com/docker-solr/docker-solr/blob/master/Docker-FAQ.md#can-i-run-zookeeper-and-solr-clusters-under-docker) FAQ, and [this example](docs/docker-networking.md). The recommended and most flexible way to do that is to use Docker networking. See the [Can I run ZooKeeper and Solr clusters under Docker](https://github.com/docker-solr/docker-solr/blob/master/Docker-FAQ.md#can-i-run-zookeeper-and-solr-clusters-under-docker) FAQ, and [this example](https://github.com/docker-solr/docker-solr/blob/master/docs/docker-networking.md).
You can also use legacy links, see the [Can I run ZooKeeper and Solr with Docker Links](Docker-FAQ.md#can-i-run-zookeeper-and-solr-clusters-under-docker) FAQ. You can also use legacy links, see the [Can I run ZooKeeper and Solr with Docker Links](https://github.com/docker-solr/docker-solr/blob/master/Docker-FAQ.md#can-i-run-zookeeper-and-solr-clusters-under-docker) FAQ.
# About this repository # About this repository