Skip to main content

Locally deploy Docker development environment

· 12 min read

Overview​

NOTE

Bash's newlines are \\

The newline character of CMD is \^

Need to set Host:

# Added by Docker Desktop
192.168.1.6 host.docker.internal
192.168.1.6 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
192.168.1.6 kubernetes.docker.internal
# End of section

Relational Database​

MySQL​

docker pull bitnami/mysql:latest

docker run -itd \
--name mysql-dev \
-p 3306:3306 \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_ROOT_PASSWORD=123456 \
bitnami/mysql:latest
note

Default account: root

Default password: 123456

PostgreSQL​

docker pull bitnami/postgresql:latest
docker pull bitnami/postgresql-repmgr:latest
docker pull bitnami/pgbouncer:latest
docker pull bitnami/pgpool:latest
docker pull bitnami/postgres-exporter:latest

docker run -itd \
--name postgres-dev \
-p 5432:5432 \
-e POSTGRES_PASSWORD=123456 \
bitnami/postgresql:latest

docker exec -it postgres-dev "apt update"
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "postgis";

SELECT version();
SELECT postgis_full_version();
note

Default account: postgres

Default password: 123456

MariaDB​

docker pull bitnami/mariadb:latest

docker run -itd \
--name mariadb-dev \
-p 3306:3306 \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MARIADB_ROOT_PASSWORD=123456 \
bitnami/mariadb:latest
note

Default account: root

Default password: 123456

SQLServer​

docker pull mcr.microsoft.com/mssql/server:2019-latest

docker run -itd \
--name mssql-dev \
-m 512m \
-e "ACCEPT_EULA=Y" \
-e "SA_PASSWORD=Abcd123456789*" \
-p 1433:1433 \
mcr.microsoft.com/mssql/server:2019-latest

TiDB​

docker pull pingcap/tidb:latest
docker pull pingcap/tikv:latest
docker pull pingcap/pd:latest

docker run -itd \
--name tidb-dev \
-v /data/tidb/data:/tmp/tidb \
--privileged=true \
-p 4000:4000 \
-p 10080:10080 \
pingcap/tidb:latest

Graph database​

Neo4J​

docker pull bitnami/neo4j:latest

docker run -itd \
--name neo4j-dev \
-p 7473:7473 \
-p 7687:7687 \
-p 7474:7474 \
-e NEO4J_PASSWORD=123456 \
bitnami/neo4j:latest

Time series database​

InfluxDB​

docker pull bitnami/influxdb:latest

docker run -itd \
--name influxdb-dev \
-p 8083:8083 \
-p 8086:8086 \
-e INFLUXDB_HTTP_AUTH_ENABLED=true \
-e INFLUXDB_ADMIN_USER=admin \
-e INFLUXDB_ADMIN_USER_PASSWORD=123456789 \
-e INFLUXDB_ADMIN_USER_TOKEN=admintoken123 \
-e INFLUXDB_DB=my_database \
bitnami/influxdb:latest
create user "admin" with password '123456789' with all privileges
note

Management tool: http://localhost:8086/

TimescaleDB​

docker pull timescale/timescaledb:latest-pg14
docker pull timescale/timescaledb:latest-pg15
docker pull timescale/timescaledb-postgis:latest-pg13
docker pull timescale/pg_prometheus:latest-pg11

docker run -itd \
--name timescale-dev \
-p 5432:5432 \
-e POSTGRES_PASSWORD=123456 \
timescale/timescaledb:latest-pg15
note

Default account: postgres

Default password: 123456

OpenTSDB​

docker pull petergrace/opentsdb-docker:latest

docker run -itd \
--name opentsdb-dev \
-p 4242:4242 \
petergrace/opentsdb-docker:latest
note

Management tool: http://localhost:4242

QuestDB​

docker pull questdb/questdb:latest

docker run -itd \
--name questdb-dev \
-p 9000:9000 \
-p 8812:8812 \
-p 9009:9009 \
questdb/questdb:latest

TDengine​

docker pull tdengine/tdengine:latest

docker run -itd \
--name tdengine-dev \
-p 6030-6041:6030-6041 \
-p 6030-6041:6030-6041/udp \
tdengine/tdengine:latest

ElasticSearch​

docker pull bitnami/elasticsearch:latest

docker run -itd \
--name elasticsearch-dev \
-p 9200:9200 \
-p 9300:9300 \
-e ELASTICSEARCH_USERNAME=elastic \
-e ELASTICSEARCH_PASSWORD=elastic \
-e xpack.security.enabled=true \
-e discovery.type=single-node \
-e http.cors.enabled=true \
-e http.cors.allow-origin=http://localhost:13580,http://127.0.0.1:13580 \
-e http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization \
-e http.cors.allow-credentials=true \
bitnami/elasticsearch:latest

docker pull appbaseio/dejavu:latest

docker run -itd \
--name dejavu-test \
-p 13580:1358 \
appbaseio/dejavu:latest
note

Management tool: http://localhost:13580/

Clickhouse​

docker pull yandex/clickhouse-server:latest
docker pull clickhouse/clickhouse-server:latest

# 8123 is http interface; 9000 is tcp interface; 9004 is mysql interface
# It is recommended to use DBeaver as the client
docker run -itd \
--name clickhouse-server-dev \
-p 8123:8123 \
-p 9000:9000 \
-p 9004:9004 \
--network=app-tier \
--ulimit \
nofile=262144:262144 \
clickhouse/clickhouse-server:latest
note

Default account: default

Password: none

Doris​

docker pull apache/doris:1.2.2-be-x86_64
docker pull apache/doris:1.2.2-fe-x86_64

docker network create --driver bridge --subnet=127.0.0.1/24 doris-network

docker run -itd \
--name=doris-fe-dev \
--env FE_SERVERS="fe1:127.0.0.1:9010" \
--env FE_ID=1 \
-p 8030:8030 \
-p 9030:9030 \
-v /data/fe/doris-meta:/opt/apache-doris/fe/doris-meta \
-v /data/fe/conf:/opt/apache-doris/fe/conf \
-v /data/fe/log:/opt/apache-doris/fe/log \
--network=doris-network \
--ip=127.0.0.1 \
apache/doris:1.2.2-fe-x86_64

docker run -itd \
--name=doris-be-dev \
--env FE_SERVERS="fe1:127.0.0.1:9010" \
--env BE_ADDR="127.0.0.1:9050" \
-p 8040:8040 \
-v /data/be/storage:/opt/apache-doris/be/storage \
-v /data/be/conf:/opt/apache-doris/be/conf \
-v /data/be/log:/opt/apache-doris/be/log \
--network=doris-network \
--ip=127.0.0.1 \
apache/doris:1.2.2-be-x86_64

NoSQL database​

MongoDB​

docker pull bitnami/mongodb:latest
docker pull bitnami/mongodb-exporter:latest

docker run -itd \
--name mongodb-dev \
-p 27017:27017 \
-e MONGODB_ROOT_USER=root \
-e MONGODB_ROOT_PASSWORD=123456 \
-e MONGODB_USERNAME=test \
-e MONGODB_PASSWORD=123456 \
-e MONGODB_DATABASE=test \
bitnami/mongodb:latest

Redis​

docker pull bitnami/redis:latest
docker pull bitnami/redis-exporter:latest

docker run -itd \
--name redis-server-dev \
-p 6379:6379 \
-e ALLOW_EMPTY_PASSWORD=yes \
bitnami/redis:latest

Memcached​

docker pull bitnami/memcached:latest
docker pull bitnami/memcached-exporter:latest

docker run -itd \
--name memcached-dev \
-p 11211:11211 \
bitnami/memcached:latest

CouchDB​

docker pull bitnami/couchdb:latest

docker run -itd \
--name couchdb-dev \
-p 5984:5984 \
-p 9100:9100 \
-e COUCHDB_PORT_NUMBER=5984
-e COUCHDB_CLUSTER_PORT_NUMBER=9100
-e COUCHDB_USER=admin
-e COUCHDB_PASSWORD=couchdb
bitnami/couchdb:latest

Cassandra​

docker pull bitnami/cassandra:latest
docker pull bitnami/cassandra-exporter:latest

docker run -itd \
--name cassandra-dev \
-p 7000:7000 \
-p 9042:9042 \
-e CASSANDRA_USER=cassandra \
-e CASSANDRA_PASSWORD=cassandra \
bitnami/cassandra:latest

Service Discovery - Registry​

Etcd​

docker pull bitnami/etcd:latest

docker run -itd \
--name etcd-standalone-dev \
-p 2379:2379 \
-p 2380:2380 \
-e ETCDCTL_API=3 \
-e ALLOW_NONE_AUTHENTICATION=yes \
-e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 \
bitnami/etcd:latest
note

Management tool: etcd-manager

Nacos​

docker pull nacos/nacos-server:latest

docker run -itd \
--name nacos-standalone-dev \
-e MODE=standalone \
-p 8849:8848 \
nacos/nacos-server:latest
note

Management tool: http://localhost:8849/nacos/index.html

Consul​

docker pull bitnami/consul:latest
docker pull bitnami/consul-exporter:latest

docker run -itd \
--name consul-standalone-dev \
-p 8300:8300 \
-p 8500:8500 \
-p 8600:8600/udp \
-e CONSUL_BIND_INTERFACE='eth0' \
-e CONSUL_AGENT_MODE=server \
-e CONSUL_ENABLE_UI=true \
-e CONSUL_BOOTSTRAP_EXPECT=1 \
-e CONSUL_CLIENT_LAN_ADDRESS=0.0.0.0 \
bitnami/consul:latest
note

Management tool: http://localhost:8500

Apollo​

docker pull apolloconfig/apollo-portal:latest
docker pull apolloconfig/apollo-configservice:latest
docker pull apolloconfig/apollo-adminservice:latest

docker run -itd \
--name apollo-configservice-dev \
-p 8080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=123456 \
-v /tmp/logs:/opt/logs \
apolloconfig/apollo-configservice:latest

docker run -itd \
--name apollo-adminservice-dev \
-p 8090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=123456 \
-v /tmp/logs:/opt/logs \
apolloconfig/apollo-adminservice:latest

docker run -itd \
--name apollo-portal-dev \
-p 8070:8070 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=123456 \
-e APOLLO_PORTAL_ENVS=dev \
-e DEV_META=http://127.0.0.1:8080 \
-v /tmp/logs:/opt/logs \
apolloconfig/apollo-portal:latest
note

Management tool: http://localhost:8070

Account / Password: apollo / admin

Message queue​

RabbitMQ​

docker pull bitnami/rabbitmq:latest

docker run -itd \
--hostname localhost \
--name rabbitmq-dev \
-p 15672:15672 \
-p 5672:5672 \
-p 1883:1883 \
-p 15675:15675 \
-e RABBITMQ_PLUGINS=rabbitmq_top,rabbitmq_mqtt,rabbitmq_web_mqtt,rabbitmq_prometheus,rabbitmq_stomp,rabbitmq_auth_backend_http \
bitnami/rabbitmq:latest

# View plugin list
rabbitmq-plugins list
# rabbitmq_peer_discovery_consul
rabbitmq-plugins --offline enable rabbitmq_peer_discovery_consul
# rabbitmq_mqtt provides interaction with backend services, port 1883
rabbitmq-plugins enable rabbitmq_mqtt
# rabbitmq_web_mqtt provides interaction with the front end, port 15675
rabbitmq-plugins enable rabbitmq_web_mqtt
# rabbitmq_auth_backend_http is enabled and configured to authenticate with RabbitMQ
rabbitmq-plugins enable rabbitmq_auth_backend_http
note

Management tool: http://localhost:15672

Account / Password: user / bitnami

Kafka​

With ZooKeeper​

docker pull bitnami/zookeeper:latest
docker pull bitnami/kafka:latest
docker pull bitnami/kafka-exporter:latest

docker run -itd \
--name zookeeper-server-dev \
--network app-tier \
-p 2181:2181 \
-e ALLOW_ANONYMOUS_LOGIN=yes \
bitnami/zookeeper:latest

docker run -itd \
--name kafka-standalone-dev \
--link zookeeper-server-dev \
--network app-tier \
-p 9092:9092 \
-v /home/data/kafka:/bitnami/kafka \
-e KAFKA_ENABLE_KRAFT=no \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://host.docker.internal:9092 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper-server-dev:2181 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
--user root \
bitnami/kafka:latest

With KRaft​

docker pull bitnami/kafka:latest

docker run -itd \
--name kafka-standalone-dev \
--user root \
-p 9092:9092 \
-p 9093:9093 \
-v /home/data/kafka:/bitnami/kafka \
-e KAFKA_ENABLE_KRAFT=yes \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@host.docker.internal:9093 \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://host.docker.internal:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
bitnami/kafka:latest
note

Management tool: Offset Explorer

NSQ​

docker pull nsqio/nsq:latest

# nsqlookupd
docker run -d \
--name nsqlookupd \
-p 4160:4160 \
-p 4161:4161 \
nsqio/nsq:latest \
/nsqlookupd

# nsqd
docker run -itd \
--name nsqd \
-p 4150:4150 \
-p 4151:4151 \
--link nsqlookupd \
nsqio/nsq:latest \
/nsqd --lookupd-tcp-address=nsqlookupd:4160

#nsqadmin
docker run -itd \
--name nsqadmin \
-p 4171:4171 \
--link nsqlookupd \
nsqio/nsq:latest \
/nsqadmin --lookupd-http-address=nsqlookupd:4161
note

Console access address: http://127.0.0.1:4171

Directly use the REST API to view node information: http://127.0.0.1:4161/nodes

NATS​

docker pull bitnami/nats:latest
docker pull bitnami/nats-exporter:latest

docker run -itd \
--name nats-server \
--p 4222:4222 \
--p 6222:6222 \
--p 8000:8222 \
-e NATS_HTTP_PORT_NUMBER=8222 \
bitnami/nats:latest
note

Management tool: https://127.0.0.1:8000

Mosquitto​

docker pull eclipse-mosquitto:latest

# 1883 tcp
# 9001 websockets
docker run -itd \
--name mosquitto-dev \
-p 1883:1883 \
-p 9001:9001 \
eclipse-mosquitto:latest

EMX​

docker pull emqx/emqx:latest

docker run -itd \
--name emqx-dev \
--add-host=host.docker.internal:host-gateway \
-p 18083:18083 \
-p 1883:1883 \
emqx/emqx:latest
note

Management tool: http://localhost:18083

Account / Password: admin / public

Pulsar​

docker pull apachepulsar/pulsar-manager:latest
docker pull apachepulsar/pulsar:latest

docker run -itd \
-p 6650:6650 \
-p 8080:8080 \
--name pulsar-standalone \
apachepulsar/pulsar:latest bin/pulsar standalone

docker run -itd \
-p 9527:9527 \
-p 7750:7750 \
-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
apachepulsar/pulsar-manager:latest
docker pull apachepulsar/pulsar-standalone:latest

docker run -itd \
-p 6650:6650 \
-p 8080:8080 \
-p 9527:9527 \
--name pulsar-standalone \
apachepulsar/pulsar:latest bin/pulsar standalone
note

Management tool: http://localhost:9527

HiveMQ​

docker pull hivemq/hivemq4:latest

docker run -itd \
--name hivemq-dev \
--ulimit nofile=500000:500000 \
-p 8080:8080 \
-p 8000:8000 \
-p 1883:1883 \
hivemq/hivemq4:latest

RocketMQ​

At least one NameServer and one Broker must be started.

docker pull apache/rocketmq:latest

# NameServer
docker run -d \
--name rmqnamesrv \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \
-p 9876:9876 \
apache/rocketmq:latest \
sh mqnamesrv

# Broker
docker run -d \
--name rmqbroker \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \
-p 10911:10911 -p 10909:10909 \
--link rmqnamesrv \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
apache/rocketmq:latest \
sh mqbroker
docker pull styletang/rocketmq-console-ng:latest

docker run -d \
--name rmqconsole \
-p 9800:8080 \
--link rmqnamesrv \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t styletang/rocketmq-console-ng:latest
note

Console access address: http://localhost:9800/#/

ActiveMQ​

docker pull rmohr/activemq:latest

docker run -d \
--name activemq-dev \
-p 61616:61616 \
-p 8161:8161 \
-p 61613:61613 \
-p 1883:1883 \
-p 61614:61614 \
rmohr/activemq:latest
Port numberProtocol
61616JMS
8161UI
5672AMQP
61613STOMP
1883MQTT
61614WS
note

Admin tool: http://localhost:8161/admin/

Account / Password: admin / admin

Asynq​

docker pull hibiken/asynqmon:latest

docker run -d \
--name asynq-dev \
-p 8080:8080 \
hibiken/asynqmon:latest --redis-addr=host.docker.internal:6379
note

Management tool: http://localhost:8080

Microservice runtime​

Tracing​

docker pull jaegertracing/all-in-one:latest

docker run -itd \
--name jaeger-dev \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-e COLLECTOR_OTLP_ENABLED=true \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:latest
Port numberProtocolComponentsFunction
6831UDPagentThrift-compact protocol (used by most SDKs)
6832UDPagentThrift-binary protocol (used by Node.js SDK)
5775UDPagentThrift-compact protocol (deprecated)
5778HTTPagentService configuration interface (sampling, etc.)
16686HTTPQueryService front end for Jaeger Web UI
4317HTTPCollectorIf enabled, receive OpenTelemetry Protocol (OTLP) over gRPC
4318HTTPCollectorIf enabled, receive OpenTelemetry Protocol (OTLP) over HTTP
14268HTTPCollectorReceive clients directly
14269HTTPCollectorProvides: health check /, performance check /metrics
14250HTTPCollectorTake over model.proto
9411HTTPCollectorZipkin-compatible http endpoint (optional)
note

API: http://localhost:14268/api/traces

Management tool: http://localhost:16686

Zipkin​

docker pull openzipkin/zipkin:latest

docker run -d \
--name zipkin-dev \
-p 9411:9411 \
openzipkin/zipkin:latest
note

API: http://localhost:9411/api/v2/spans

Management tool: http://localhost:9411

Operation and maintenance monitoring​

Kibana​

docker pull bitnami/kibana:latest

docker run -d \
--name kibana-dev \
-p 5601:5601 \
-e KIBANA_ELASTICSEARCH_URL=elasticsearch \
-e KIBANA_ELASTICSEARCH_PORT_NUMBER=9200 \
bitnami/kibana:latest

Prometheus​

docker pull bitnami/prometheus:latest
docker pull bitnami/pushgateway:latest

docker run -d \
--name prometheus-gateway \
-p 9091:9091 \
bitnami/pushgateway:latest

docker run -d \
--name prometheus \
-p 9090:9090 \
bitnami/prometheus:latest
note

Prometheus tool: http://localhost:9090

Push gateway tool: http://localhost:9091

Grafana​

docker pull bitnami/grafana:latest

docker run -d \
--name grafana \
-p 3000:3000 \
-e GF_SECURITY_ADMIN_PASSWORD=pass \
bitnami/grafana:latest

Logstash​

docker pull bitnami/logstash:latest
docker pull bitnami/logstash-exporter:latest

docker run -d \
--name logstash \
-p 8080:8080 \
bitnami/logstash:latest

Fluentd​

docker pull bitnami/fluentd:latest

docker run -d \
--name fluentd \
-p 24224:24224 \
-p 24224:24224/udp \
-v /data:/opt/bitnami/fluentd/log \
bitnami/fluentd:latest

Streaming computing​

Spark​

docker pull bitnami/spark:latest

docker run -itd \
--name spark-standalone \
-p 6066:6066 \
-p 7077:7077 \
-p 8080:8080 \
-p 50070:50070 \
-e SPARK_MODE=master \
-e SPARK_WORKER_CORES=1 \
-e SPARK_WORKER_MEMORY=2g \
bitnami/spark:latest
note

HDFS web interface: http://localhost:50070

Spark interface: http://localhost:8080

docker pull flink:latest

docker network create flink-network

docker run -itd \
--name flink-jobmanager \
--network flink-network \
-p 8081:8081 \
--env FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" \
flink:latest jobmanager

docker run -itd \
--name flink-taskmanager \
--network flink-network \
--env FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" \
flink:latest taskmanager
note

Management tool: http://localhost:8081

Object storage​

MinIO​

docker pull bitnami/minio:latest

docker network create app-tier --driver bridge

# MINIO_ROOT_USER minimum 3 characters
# MINIO_ROOT_PASSWORD minimum 8 characters
# When running for the first time, the service will automatically shut down, and it can run normally after restarting manually.
docker run -itd \
--name minio-server \
-p 9000:9000 \
-p 9001:9001 \
--env MINIO_ROOT_USER="root" \
--env MINIO_ROOT_PASSWORD="123456789" \
--env MINIO_DEFAULT_BUCKETS='images,videos' \
--env MINIO_FORCE_NEW_KEYS="yes" \
--env BITNAMI_DEBUG=true \
--volume /usr/local/minio/data:/data \
--network app-tier \
bitnami/minio:latest
docker pull minio/minio:latest

# MINIO_ROOT_USER minimum 3 characters, default: minioadmin
# MINIO_ROOT_PASSWORD minimum 8 characters, default: minioadmin
docker run -itd \
--name minio-server \
-p 9000:9000 \
-p 9001:9001 \
-e "MINIO_ROOT_USER=root" \
-e "MINIO_ROOT_PASSWORD=123456789" \
-v /usr/local/minio/data:/data \
--network app-tier \
minio/minio server /data --console-address ':9001'
note

Management tool: http://localhost:9001/login

Machine learning​

TensorFlow​

docker pull bitnami/tensorflow-resnet:latest
docker pull bitnami/tensorflow-serving:latest
docker pull bitnami/tensorflow-inception:latest

docker network create app-tier --driver bridge

docker run -d --name tensorflow-serving \
--volume /tmp/model-data:/bitnami/model-data \
--network app-tier \
bitnami/tensorflow-serving:latest

docker run -d --name tensorflow-resnet \
--volume /tmp/model-data:/bitnami/model-data \
--network app-tier \
bitnami/tensorflow-resnet:latest

References​