Using Docker to Run Some Popular Application Images (MySql, ElasticSearch, RabbitMQ, Kafka, Zookeeper, Nginx, MongoDB, Tomcat)
This post is only used to record some middleware projects' commands. I found that every time I need to start a lot of middleware on Windows is particularly troublesome. I thought of writing an article to summarize the commands which need to run in docker to start those middlewares. Next time just copy and paste the commands.Docker starts MySQL
Search Mysql image
docker search mysql
docker images -a
Run Mysql
docker run -p 3306:3306 --name mysql -v $PWD /conf:/etc/mysql/conf.d -v $PWD /logs:/logs -v $PWD /data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD = 123456 -d mysql:5.7.19
-p 3306:3306: Maps the container's 3306 port to the host's 3306 port.-v $PWD/conf:/etc/mysql/conf.d: Mountconf/my.cnfhost's current directory to the container's/etc/mysql/my.cnf.-v $PWD/data:/var/lib/mysql: Mount the data directory under the host's current directory to the container's/var/lib/mysql.-e MYSQL_ROOT_PASSWORD=root: Initialize the password of the root user.
docker ps
docker run -it mysql /bin/bash
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY 'root' WITH GRANT OPTION ;
flush privileges;
Docker Launch ElasticSearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
Running elasticsearch with Docker
9200 We map the host environment port 9200 port 9200 in the Docker container, and we can access the ElasticSearch service in the Docker container. At the same time, we name this container es.docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
Enter container configuration cross domain
docker exec -it es /bin/bash
# list file
ls
LICENSE.txt README.textile config lib modules NOTICE.txt bin data logs plugins
# Enter configuration folder
cd config
# list file
ls
elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles elasticsearch.yml jvm.options role_mapping.yml users
# Edit configuration file
vi elasticsearch.yml
# Add cross domain configuration
http.cors.enabled: true http.cors.allow-origin: "*"
As the configuration has been modified, the ElasticSearch container needs to be restarted.
docker restart es
Docker Launch ElasticSearch-Head
Official Website: https://github.com/mobz/elasticsearch-head
ddocker pull mobz/elasticsearch-head:5
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
Docker Launch Redis
docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf
> docker run redis # run Redis from docker
-p 6379:6379 # map local 6379 to docker's 6379 port. Front one is local port.
--name redis # set docker name as redis. It will be easier to manage it using docker ps
-v /docker/redis/redis.conf:/etc/redis/redis.conf # link lock docker/redis/redis.conf file to docker's file /etc/redis/redis.conf
-v /docker/redis/data:/data # 关联本地/docker/redis/data到容器内/data目录,此为存放redis数据的目录,为方便以后升级redis,而数据可以留存
-d # 后台启动,使用此方式启动,则redis.conf中daemonize必须设置为no,否则会无法启动
redis-server /etc/redis/redis.conf # 在容器内启动redis-server的命令,主要是为了加载配置
docker run --name redis_zl -p 6379:6379 -d redis --requirepass "密码"
Docker Launch RabbitMQ
docker pull rabbitmq:management
docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitmq:management docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
–Hostname: specify the container host name
–name: specify the container name
-p: Map mq port number to local
Alternate startup sets both user and password
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER = admin -e RABBITMQ_DEFAULT_PASS = admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
15672: Console port number
5672: Application access port number
Reminder, if this started container is not stopped when the computer is shut down, it will not be able to access 15672 when restarting docker. At this time, just stop and remove the container, then restart docker, and re-execute the rabbitmq container command. .
Docker starts kafka and zookeeper
docker pull wurstmeister/kafka
docker pull wurstmeister/zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper docker run -d --name kafka \ -p 9092:9092 \ -e KAFKA_BROKER_ID = 0 \ -e KAFKA_ZOOKEEPER_CONNECT = 172.16.65.243:2181 \ -e KAFKA_ADVERTISED_LISTENERS = PLAINTEXT://172.16.65.243:9092 \ -e KAFKA_LISTENERS = PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
Docker starts Nginx
docker pull nginxdocker images | grep nginxdocker run --name nginx -p 80:80 -d nginxdocker exec -it nginx bash
Docker launches Mongodb
sudo docker pull mongosudo docker run --name some-mongo -p 27017:27017 -d mongo --auth
docker exec -it some-mongo bash
- Start mongo
mongo
- Switch
use admin
db.createUser ( { user: "root" , pwd: "root" , roles: [ { role: "userAdminAnyDatabase" , db: "admin" } ] } )
Docker launches Tomcat
Tomcat
docker images #list all images
docker image tomcat:7 #get the image from repository tomcat:7
docker run -d --name tomcat -p 8081:8080 tomcat:7

No comments