简单了解docker 基础
docker 基础
注:所有–net mynet 可以不使用
docker update 容器 --restart=always 开机自启
tomcat
1.下载
docker pull tomcat
2. 启动
docker run -d -p 8080:8080 --name tomcat --net mynet \
-v tomcat-conf:/usr/local/tomcat/conf \
-v tomcat-logs:/usr/local/tomcat/logs \
-v tomcat-webapps:/usr/local/tomcat/webapps tomcat
通过具名挂载文件目录 --net 设置网络
docker inspect tomcat 查看详情
但是启动发现无法访问 可以发现webapps 文件是空,原因是tomcat镜像导致
解决:进入容器 可以发现webapps.dist文件 拷贝文件进入webapps
tomcat 安装完成
nginx
docker pull nginx
docker run -d -p80:80 --name nginx --net mynet \
-v nginx-conf:/etc/nginx \
-v nginx-html:/usr/share/nginx \
-v nginx-logs:/var/log/nginx nginx
docker inspect nginx 查看详情
可以看见挂载成功 安装完成 访问80端口测试
mysql5.7
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql --net mynet \
-v mysql-log:/var/log/mysql \
-v mysql-data:/var/lib/mysql \
-v mysql-conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
docker inspect mysql 查看
如果项配置mysql 在mysql-conf 文件创建 my.cnf 配置重启mysql
连接测试
redis
由于redis配置原因 不使用具名挂载 之间挂载具体文件夹
创建文件夹
mkdir -p /root/redis/conf
touch /root/redis/conf/redis.conf
docker pull redis
docker run -p 6379:6379 --name redis --net mynet \
-v /root/redis/data:/data \
-v /root/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
简单修改配置
appendonly yes # aof持久化
protected-mode yes 保护模式
logfile “6379.log” 日志
重启redis即可测试
elasticsearch
版本 7.10.1
es 占内存比较大 所以启动设置一下初始内存
docker pull elasticsearch:7.10.1
docker run -d --name es -p 9200:9200 -p 9300:9300 \
--net mynet -e "discovery.type=single-node" \
-e ES_JAVA_OPTS=" -Xms128m -Xmx1042m" \
-v es-config:/usr/share/elasticsearch/config \
-v es-log:/usr/share/elasticsearch/log \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.10.1
ip:9200 测试
安装可视化
界面官网地址 https://github.com/mobz/elasticsearch-head
kibana
版本 7.10.1
具名挂在一些目录
docker pull kibana:7.10.1
docker run -d --name kibana -p 5601:5601 --net mynet \
-v kibana-data:/usr/share/kibana/data \
-v kibana-conf:/usr/share/kibana/config \
-e ES_JAVA_OPTS=" -Xms128m -Xmx1042m" \
kibana:7.10.1
配置es地址 及中文配置
elasticsearch.hosts: [“http://容器名:9200”] #上面通过–net不用–link可以连通
i18n.locale: “zh-CN”
redis 集群
6个配置文件
for port in $(seq 1 6); \
do \
mkdir -p /root/redis/node-${port}/conf
touch /root/redis/node-${port}/conf/redis.conf
cat << EOF >/root/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
logfile redis.log
EOF
done
创建集群网络
docker network create redis --subnet 172.38.0.0/16
启动
docker run -p 6371:6379 -p 16371:13679 --name redis-1 \
-v /root/redis/node-1/data:/data \
-v /root/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis redis-server /etc/redis/redis.conf
docker run -p 6372:6379 -p 16372:13679 --name redis-2 \
-v /root/redis/node-2/data:/data \
-v /root/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis redis-server /etc/redis/redis.conf
docker run -p 6373:6379 -p 16373:13679 --name redis-3 \
-v /root/redis/node-3/data:/data \
-v /root/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.13 redis redis-server /etc/redis/redis.conf
docker run -p 6374:6379 -p 16374:13679 --name redis-4 \
-v /root/redis/node-4/data:/data \
-v /root/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.14 redis redis-server /etc/redis/redis.conf
docker run -p 6375:6379 -p 16375:13679 --name redis-5 \
-v /root/redis/node-5/data:/data \
-v /root/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.15 redis redis-server /etc/redis/redis.conf
docker run -p 6376:6379 -p 16376:13679 --name redis-6 \
-v /root/redis/node-6/data:/data \
-v /root/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.16 redis redis-server /etc/redis/redis.conf
修改端口 ip 配置 启动 6个
创建集群
登录
docker exec -it redis-1 /bin/sh
创建
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
测试
redis-cli -c
cluster nodes