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.
Search Mysql image
docker search mysql
View all images
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.cnf
host’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.
View running containers
docker ps
Into container content
docker run -it mysql /bin/bash
log in
mysql -u root -p
Modify permissions
GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY 'root' WITH GRANT OPTION ;
This sentence is very crucial, clear the cache
flush privileges;
Docker Launch ElasticSearch
Pull version source https://www.docker.elastic.co/#
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
Running elasticsearch with Docker
The default port of ElasticSearch is
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
Because you want to configure it, you need to enter the container to modify the corresponding configuration information.
docker exec -it es /bin/bash
Enter operation
# 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: "*"
Restart
As the configuration has been modified, the ElasticSearch container needs to be restarted.
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
Run the container
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
Explanation
> 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
run
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
Start 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 nginx
docker images | grep nginx
docker run --name nginx -p 80:80 -d nginx
docker exec -it nginx bash
Docker launches Mongodb
sudo docker pull mongo
sudo docker run --name some-mongo -p 27017:27017 -d mongo --auth
docker exec -it some-mongo bash
- Start mongo
mongo
- Switch
use admin
Add users and permissions
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