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——命令篇相关推荐

  1. 《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 ...

  2. docker命令入门到精通这一篇就够了

    Docker命令使用 帮助命令 docker version # 显示docker的版本信息 docker info # 显示docker系统信息,包括镜像和容器的数量 docker 命令 --hel ...

  3. Docker 命令自动补全必须有

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 前言 不知道这个小伙伴有多久没用过 Docker 了, ...

  4. docker run后台启动命令_Docker-第五部分:15个 Docker 命令

    原文作者:Jeff Hale 原文地址:https://towardsdatascience.com/15-docker-commands-you-should-know-970ea5203421 翻 ...

  5. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...

  6. shell执行docker命令卡挂住_Docker官方文档翻译4

    第四篇:Swarms 准备工作 安装Docker版本1.13或更高版本. 安装Docker compose. 安装docker machine 阅读第1 2 3部分的内容. 确保你已发布并推送到注册仓 ...

  7. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...

  8. 深入浅出Docker(二):Docker命令行探秘

    本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...

  9. 尚硅谷docker基础篇 2018版

    typora-root-url: ./image Docker基础篇之快速上手 第一章 Docker简介 是什么? 问题:为什么会有 docker 的出现 一款产品从开发到上线,从操作系统,到运行环境 ...

最新文章

  1. 简单介绍SQLserver中的declare变量用法
  2. Grafana 6.0正式发布!新增查询工作流,全新独立Gauge面板
  3. 5种方法实现“反转字符串”
  4. 如何确保TCP协议传输稳定可靠?
  5. 又一个神器!只需一行代码,纯文本秒变Markdown
  6. nginx工作进程处理请求的系统调用
  7. 当女朋友生气了而你却没发现 !!!
  8. python基础知识点小结(2021/2/9)
  9. ajax请求可以延时吗,延时校验AJAX请求
  10. php 存在键,php判断数组中是否存在指定键(key)的方法
  11. enter 默认搜索
  12. 导出域控中不活动的计算机_满满干货丨小薇和你聊聊计算机二级的那些事儿
  13. [UE4] 虚幻4学习---UE4中的字符串转换
  14. RNA_seq(1)植物转录组实战(上)之salmon进行索引建立和转录组定量
  15. Linux内核分析——第四周学习笔记
  16. RJ45口线序的理解
  17. SEO入门知识2:不同角度看seo
  18. linux 部署 程序,Linux 部署配置WEB APP
  19. 项目总结之词法分析器
  20. PyCrypto —— 一个极好的信息安全python库

热门文章

  1. yolov3预测图片
  2. 小学教学计算机答辩,小学信息技术《认识计算机》答辩设计
  3. 聚集索引设计的注意事项(翻译)
  4. 总结GLM库中glm::transform(位移), glm:scale(缩放), glm::rotate(旋转)
  5. mysql教程 主键_MySQL创建主键
  6. 使用Node-RED搭建一个天气预报面板
  7. 股指期货渐行渐近 并不适合中小投资者
  8. 小红帽的故事居然是从法国民间的一个狼人诱奸小女孩的故事改来的
  9. Vue路由(vue-router)
  10. 从操作系统内核解释电脑死机原理