Docker——命令篇
1、命令
1.1、配置docker开机启动
systemctl enable docker.service
1.2、配置容器启动
docker update --restart=always 容器id(跟随docker开机重启)
1.3、配置镜像
vim /etc/docker/daemon.json
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
1.4、服务器外部修改容器配置文件
# 查看容器报错原因
[root@pro nginx]# docker logs nginx
nginx: [emerg] unknown directive “gizp” in /etc/nginx/nginx.conf:29
# 在此目录找到nginx容器的配置文件
[root@pro nginx]# cd /var/lib/docker/overlay2/
[root@pro overlay2]# find ./ -name nginx.conf
./7baeb968df6b073708cce37a182cf54fd033023a5eda6bb6d1077438d950ce6e/diff/etc/nginx/nginx.conf
# 将文件修改正确
[root@pro overlay2]# vim
./7baeb968df6b073708cce37a182cf54fd033023a5eda6bb6d1077438d950ce6e/diff/etc/nginx/nginx.conf
# 重启容器
[root@pro overlay2]# docker restart nginx
nginx
1.5、常见应用安装脚本整合
已包含Mysql5.7、Redis、MongoDB、RocketMQ、RabbitMQ软件的安装
注意:①使用命令之前请先关闭服务器防火墙②请给sheel脚本赋予权限
使用:./test.sh 命令
写的比较Low,业余时间整理的,不要嫌弃!!!
#!/bin/sh# 使用说明,用来提示输入参数
usage() {echo "Usage: sh 执行脚本.sh [close_fire|rocketmq|stop_rock|rm_rock|rabbitmq|single_redis|mysql|mongodb]"exit 1
}
local_ip="172.29.170.34"rocketmq(){#安装之前请先关闭防火墙
broker_file_path="/application/rocketmq/conf/"
broker_file_name="broker.conf"
if [ ! -d "$broker_file_path" ];thenmkdir -p $broker_file_pathecho "文件夹创建完毕"
elseecho "文件夹已经存在"
fi
cd $broker_file_path
touch $broker_file_name
echo "brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
namesrvAddr = $local_ip:9876
brokerIP1 = $local_ip
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
" >> $broker_file_name
#安装nameServer
docker run -d -p 9876:9876 -v /application/rocketmq/data/namesrv/logs:/root/logs --privileged=true --restart=always -v /application/rocketmq/data/namesrv/store:/root/store --name rmqnamesrv -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms1024m -Xmx1024m" rocketmqinc/rocketmq sh mqnamesrv
#安装broker
docker run -d -p 10911:10911 -p 10909:10909 -v /application/rocketmq/data/broker/logs:/root/logs --privileged=true -v /application/rocketmq/rocketmq/data/broker/store:/root/store -v $broker_file_path/broker.conf:/opt/rocketmq/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms1024m -Xmx1024m" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq/conf/broker.conf
#安装控制台
docker run -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=$local_ip:9876 -Drocketmq.config.isVIPChannel=false" -p 8080:8080 --name rocketconsole -t styletang/rocketmq-console-ng
echo "rocketMq 安装完毕—-===========SUCCESS================--"
}
stop_rock(){docker stop rmqbroker rmqnamesrv rocketconsole
}
rm_rock(){docker rm rmqbroker rmqnamesrv rocketconsole
}
close_fire(){if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; thensystemctl stop firewalldsystemctl disable firewalldecho "已关闭防火墙"
elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; thenservice iptables stopchkconfig iptables off
fi
}rabbitmq(){rabbit_file_path="/application/rabbitmq/data"
mq_host="my_vhost"
mq_user="guest"
mq_password="guest"
docker_name="rabbitmq"if [ ! -d "$rabbit_file_path" ];thenmkdir -p $rabbit_file_pathecho "文件夹创建完毕"
elseecho "文件夹已经存在"
fi
docker run -d --name $docker_name --privileged=true --restart=always -p 5672:5672 -p 15672:15672 -v $rabbit_file_path:/var/lib/rabbitmq --hostname rabbitmq -e RABBITMQ_DEFAULT_VHOST=$mq_host -e RABBITMQ_DEFAULT_USER=$mq_user -e RABBITMQ_DEFAULT_PASS=$mq_password docker.io/rabbitmq:3.7.17-management
CONTAINER_ID=`docker ps -a | grep "$docker_name" | awk '{print $1}'`
if [ -n "$CONTAINER_ID" ]thenecho "启动成功!"docker ps -a | grep "$docker_name"exit 0elseecho "失败!"docker stop $docker_name docker rm $docker_nameexit 1 fi
}
#单节点 Redis
single_redis(){redis_data="/application/redis/data/"
redis_conf_path="/application/redis/conf/"
docker_name="redis"
redis_images="redis"
redis_password="Admin12345!"
if [ ! -d "$redis_conf_path" ];thenmkdir -p $redis_conf_pathecho "文件夹创建完毕"
elseecho "文件夹已经存在"cd $redis_conf_pathrm redis.conf
fi
cd $redis_conf_path
#生成配置文件
touch redis.conf
echo 'bind 0.0.0.0protected-mode noport 6379tcp-backlog 511timeout 0tcp-keepalive 300daemonize nosupervised nopidfile /var/run/redis_6379.pidloglevel noticelogfile ""databases 16always-show-logo yessave 900 1
save 300 10
save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./replica-serve-stale-data yesreplica-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noreplica-priority 100lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush noappendonly yesappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mbaof-load-truncated yesaof-use-rdb-preamble yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512
hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128
zset-max-ziplist-value 64hll-sparse-max-bytes 3000stream-node-max-bytes 4096
stream-node-max-entries 100activerehashing yesclient-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60dynamic-hz yesaof-rewrite-incremental-fsync yesrdb-save-incremental-fsync yes
' >> redis.confdocker run -p 6224:6379 -v $redis_data:/data -v $redis_conf_path/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --restart=always --name $docker_name -d docker.io/redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf --requirepass $redis_passwordCONTAINER_ID=`docker ps -a | grep "$docker_name" | awk '{print $1}'`
if [ -n "$CONTAINER_ID" ]thenecho "启动成功!"docker ps -a | grep "$docker_name"exit 0elseecho "失败!"docker stop $docker_name docker rm $docker_nameexit 1 fi
}mysql(){#Version 5.7
password="Admin12345!"mysql_data="/application/mysql/data"docker_name="mysql5.7"docker run --name $docker_name --privileged=true --restart=always -p 6223:3306 -e MYSQL_ROOT_PASSWORD=$password -v $mysql_data:/var/lib/mysql -d docker.io/mysql:5.7CONTAINER_ID=`docker ps -a | grep "$docker_name" | awk '{print $1}'`if [ -n "$CONTAINER_ID" ]thenecho "启动成功!"docker ps -a | grep "$docker_name"echo "请进入到容器自行改相关配置!"echo "数据库密码:"$passwordexit 0elseecho "失败!"docker stop $docker_name docker rm $docker_nameexit 1 fi }mongodb() {mongodb_data="/application/mongodb"
docker_name="mongodb"
docker run -d --name $docker_name --privileged=true --restart=always -v $mongodb_data/data:/data/db -v $mongodb_data/backup:/data/backup -v $mongodb_data/conf:/data/configdb -p 27017:27017 docker.io/mongo --auth
#docker exec -it mongodb mongo
#use admin
#db.createUser({user:'admin',pwd:'admin',roles:['root']})
#db.auth('admin','admin')
CONTAINER_ID=`docker ps -a | grep "$docker_name" | awk '{print $1}'`
if [ -n "$CONTAINER_ID" ]thenecho "启动成功!"docker ps -a | grep "$docker_name"echo "请进入到容器自行改相关配置!"echo "设置用户:docker exec -it mongodb mongouse admindb.createUser({user:'admin',pwd:'admin',roles:['root']})db.auth('admin','admin')" echo "设置网络:docker exec -it mongodb /bin/bashvim /etc/mongod.conf.orig将bindIp:127.0.0.1 修改为0.0.0.0"exit 0elseecho "失败!"docker stop $docker_name docker rm $docker_nameexit 1 fi
}minio() {minioFilePath="/application/minio"
docker_name="minio"docker run -d -p 9000:9000 -p 9200:9200 --name=minio --restart=always -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=123456" -v /application/minio/data:/data -v /application/minio/config:/root/.minio minio/minio server /data --console-address ":9200" --address ":9000"CONTAINER_ID=`docker ps -a | grep "$docker_name" | awk '{print $1}'`
if [ -n "$CONTAINER_ID" ]thenecho "启动成功!"docker ps -a | grep "$docker_name"exit 0elseecho "失败!"docker stop $docker_name docker rm $docker_nameexit 1 fi }# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"rocketmq")rocketmq
;;
"stop_rock")stop_rock
;;
"rm_rock")rm_rock
;;
"close_fire")close_fire
;;
"rabbitmq")rabbitmq
;;
"single_redis")single_redis
;;
"mysql")mysql
;;
"mongodb")mongodb
;;
"minio")minio
;;*)usage
;;
esac
1.6、正在运行的容器同步系统时间
# docker镜像内的时间和系统时间相差8个小时。docker cp -L /usr/share/zoneinfo/Asia/Shanghai 【容器名】:/etc/localtime
Docker——命令篇相关推荐
- 《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
文章目录 二.高级篇(大厂进阶) 5.Docker-compose容器编排 5.1是什么 5.2能干嘛 5.3去哪下 5.4 Compose核心概念 5.5 Compose使用的三个步骤 5.6 Co ...
- docker命令入门到精通这一篇就够了
Docker命令使用 帮助命令 docker version # 显示docker的版本信息 docker info # 显示docker系统信息,包括镜像和容器的数量 docker 命令 --hel ...
- Docker 命令自动补全必须有
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 前言 不知道这个小伙伴有多久没用过 Docker 了, ...
- docker run后台启动命令_Docker-第五部分:15个 Docker 命令
原文作者:Jeff Hale 原文地址:https://towardsdatascience.com/15-docker-commands-you-should-know-970ea5203421 翻 ...
- python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...
原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...
- shell执行docker命令卡挂住_Docker官方文档翻译4
第四篇:Swarms 准备工作 安装Docker版本1.13或更高版本. 安装Docker compose. 安装docker machine 阅读第1 2 3部分的内容. 确保你已发布并推送到注册仓 ...
- python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...
原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...
- 深入浅出Docker(二):Docker命令行探秘
本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...
- 尚硅谷docker基础篇 2018版
typora-root-url: ./image Docker基础篇之快速上手 第一章 Docker简介 是什么? 问题:为什么会有 docker 的出现 一款产品从开发到上线,从操作系统,到运行环境 ...
最新文章
- 简单介绍SQLserver中的declare变量用法
- Grafana 6.0正式发布!新增查询工作流,全新独立Gauge面板
- 5种方法实现“反转字符串”
- 如何确保TCP协议传输稳定可靠?
- 又一个神器!只需一行代码,纯文本秒变Markdown
- nginx工作进程处理请求的系统调用
- 当女朋友生气了而你却没发现 !!!
- python基础知识点小结(2021/2/9)
- ajax请求可以延时吗,延时校验AJAX请求
- php 存在键,php判断数组中是否存在指定键(key)的方法
- enter 默认搜索
- 导出域控中不活动的计算机_满满干货丨小薇和你聊聊计算机二级的那些事儿
- [UE4] 虚幻4学习---UE4中的字符串转换
- RNA_seq(1)植物转录组实战(上)之salmon进行索引建立和转录组定量
- Linux内核分析——第四周学习笔记
- RJ45口线序的理解
- SEO入门知识2:不同角度看seo
- linux 部署 程序,Linux 部署配置WEB APP
- 项目总结之词法分析器
- PyCrypto —— 一个极好的信息安全python库