Docker 本地安装常用应用

docker启动容器设置自启动

加上配置:--restart=always
比如:

docker run -tid --name 【定义容器名称】 -p 8081:8080 --restart=always 【镜像名称】

如果是已经启动的容器,要使用docker update

docker update --restart=always 【容器ID】

安装mysql

# 安装mysql8版本
docker run -d -p 3307:3306 -v /home/mysql8/conf:/etc/mysql/conf.d -v /home/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql8 mysql:8.0.23

# 安装mysql5版本
docker run -d -p 33306:3306 -v /home/mysql5/conf:/etc/mysql/conf.d -v /home/mysql5/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql5 mysql:5.7

redis使用

docker exec -it 【redis容器id】 redis-cli

虚拟机里面:

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 exec -it redis bash
redis-cli
# 或直接使用redis-cli访问容器内redis
docker exec -it redis redis-cli [-a 密码]

kafka

下载镜像:

docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka

启动zookeeper:docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
启动kafka:

docker run -d --name kafka  -p 9092:9092   -e KAFKA_BROKER_ID=0  -e KAFKA_ZOOKEEPER_CONNECT=【ip同kafka配置文件】:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://【ip同kafka配置文件】:9092 -e KAFKA_LISTENERS=PLAINTEXT://【ip同kafka配置文件】:9092 -t wurstmeister/kafka

进入kafka容器: docker exec -it 【容器id】 /bin/bash
到kafka的bin目录: cd opt/bin
创建主题:

bin/kafka-topics.sh --create --zookeeper 【ip同kafka配置文件】:2181 --replication-factor 1 --partitions 1 --topic abiu

创建生产者:

bin/kafka-console-producer.sh --broker-list 【ip同kafka配置文件】:9092 --topic abiu		

创建消费者:

bin/kafka-console-consumer.sh --bootstrap-server 【ip同kafka配置文件】:9092 --topic abiu --from-beginning

MongoDB

docker pull mongo

# --auth设置需要密码才能访问mongo
docker run -itd --name 【mongo起个名称】 -p 27017:27017 【mongo镜像】 --auth

docker exec -it 【容器名称】 【镜像名称】 admin

# 先使用admin账户测试一下
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

# 使用admin账户测试建立连接
> db.auth('admin', '123456')

# 创建一个名为 abiu,密码为 123456 的用户,这个用户作用在test表
> db.createUser({user:"abiu",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})

# 尝试使用上面创建的用户信息进行连接。
> db.auth('abiu', '123456')

kafka 客户端工具

主要用于kafka
对外暴露端口和配置信息,如账号密码等,自己设置

docker run -d -p 9999:8080 -v /opt/kafka-map/data:/usr/local/kafka-map/data -e DEFAULT_USERNAME=admin -e DEFAULT_PASSWORD=admin --name kafka-map --restart always dushixiang/kafka-map:latest

kafka-ui-lite

管理kafka,看不到topic的消息,并且可以连接zookeeper 和 redis

docker run -d -p 8889:8889 freakchicken/kafka-ui-lite

nsq

# nsqlookupd
docker run --name lookupd -p 4160:4160 -p 4161:4161 -d nsqio/nsq /nsqlookupd
# nsqd
docker run --name nsqd -p 4150:4150 -p 4151:4151 -d nsqio/nsq /nsqd --broadcast-address=10.10.10.101 --lookupd-tcp-address=10.10.10.101:4160
# nsqadmin
docker run -d --name nsqadmin -p 4171:4171 nsqio/nsq /nsqadmin --lookupd-http-address=10.10.10.101:4161

访问 http://10.10.10.101:4161/nodes 调用 lookupd 接口查看节点信息
curl -d 'hello world ' 'http://127.0.0.1:4151/pub?topic=test' 生产一个消息,同时也创建了一个topic。
调用 lookupd 的 /topics 接口http://10.10.10.101:4161/topics 返回 {"topics":["test"]}
访问 http://10.10.10.101:4171/

安装etcd单节点

先创建目录

mkdir /var/myetcd/data -p

启动容器

docker run -d \
  -p 12379:2379 \
  -p 12380:2380 \
  -v /var/myetcd/data:/etcd-data/member \
  --name exam-etcd \
   quay.io/coreos/etcd:latest \
  /usr/local/bin/etcd \
  --name s1 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://0.0.0.0:2379 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://0.0.0.0:2380 \
  --initial-cluster s1=http://0.0.0.0:2380 \
  --initial-cluster-token tkn \
  --initial-cluster-state new
  #--log-level info \
  #--logger zap \
 # --log-outputs stderr

测试

docker exec exam-etcd etcdctl --endpoints=http://127.0.0.1:2379 set test_key hello_world

docker exec exam-etcd etcdctl --endpoints=http://127.0.0.1:2379 get test_key
posted @ 2022-09-05 00:05  aBiu--  阅读(104)  评论(0编辑  收藏  举报