admin管理员组文章数量:1646328
Docker命令集
- 一、Docker命令集
- 1. Docker安装命令
- 2. Docker启动,停止,重启t等相关操作命令
- 3.Docker镜像相关命令
- 3.1 删除本地镜像
- 4.注册中心的国内加速镜像的配置
- 5.Container容器操作
- 5.1 创建与启动容器
- 5.2 停止与启动容器
- 5.3 删除容器
- 6. 备份与迁移
- 二、基于Docker的MySql相关命令集
- 1.Navicat连接MySql8.0
- 三、基于Docker的MongoDB相关命令集
- 1.安装mogoDB
- 2.设置mongoDB用户帐号
- 3. 数据库操作
- 4.集合操作(类似mysql中的表)
- 4.1.文档插入
- 4.1.1单个文档插入
- 4.1.2 批量文档插入
- 4.2文档的查询
- 4.3文档的更新
- 4.4文档的分页查询
- 四、基于Docker的ElasticSearch安装
- 五、基于Docker环境下elasticsearch-head安装
- 六、基于Docker环境下安装RabbitMQ
- 1、修改用户密码
- 2、安装延迟插件
- 3、解决点击channels报错Stats in management UI are disabled on this node
- 七、基于Docker环境下安装Redis
一、Docker命令集
1. Docker安装命令
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 – 这个是安装依赖
sudo yum-config-manager --add-repo https://download.docker/linux/centos/docker-ce.repo—安装仓库
sudo yum install docker-ce docker-ce-cli containerd.io
sudo yum install docker-ce docker-ce-cli
2. Docker启动,停止,重启t等相关操作命令
l 启动docker:systemctl start docker
l 停止docker:systemctl stop docker
l 重启docker:systemctl restart docker
l 查看docker状态:systemctl status docker
l 开机启动:systemctl enable docker
3.Docker镜像相关命令
docker images --查看本地镜像
docker search 镜像名称 --查询搜索注册中心中的镜像
docker pull 镜像的名字 --下载(拉取)镜像
docker inspect 镜像的名字 --查看镜像的元信息
3.1 删除本地镜像
docker rmi 镜像编号(image id)/镜像名字:版本标记 --删除指定镜像
docker rmi docker images -q – 删除所有镜像
注册中心的国内加速镜像的配置
4.注册中心的国内加速镜像的配置
官方docker服务器在国外,比较慢。可以使用国内镜像注册中心。
ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
https://lug.ustc.edu/wiki/mirrors/help/docker
步骤:
(1)编辑该文件:vi /etc/docker/daemon.json // 如果该文件不存在就手动创建;说明:在centos7.x下,通过vi。
(2)在该文件中添加上 registry-mirrors 键值
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu","https://registry.docker-cn"]
}
- Docker中国区官方镜像:
- Docker 中国官方镜像加速-地址:https://registry.docker-cn
- Docker 中国官方镜像加速-官网说明:https://www.docker-cn/registry-mirror
- 中科大镜像:
- 中科大镜像加速-地址:https://docker.mirrors.ustc.edu
- 中科大镜像官网说明:https://mirrors.ustc.edu/
- 阿里的docker镜像,需要注册,详情网上查。
(3)注意:一定要重启docker服务
5.Container容器操作
docker ps --查看正在运行的容器
docker ps -a – 查看所有的容器(包括运行和关闭的)
docker ps -l – 查看最后一次运行的容器信息
docker ps -f status=exited --查看停止了的容器列表
5.1 创建与启动容器
docker run -it --name=mycentos centos:7.5.1804 /bin/bash --创建一个交互式容器并取名为mycentos
使用exit命令 或者按ctrl+d,退出当前容器
docker run -id --name=mycentos2 centos:7.5.1804 /bin/bash --创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。
docker exec -it container_name (或者 container_id) /bin/bash(exit退出时,容器不会停止) --登录守护式容器方式
5.2 停止与启动容器
docker stop $CONTAINER_NAME/ID --停止正在运行的容器(守护式容器)
docker start $CONTAINER_NAME/ID --启动已运行过的容器
docker restart $CONTAINER_NAME/ID --重启容器
5.3 删除容器
docker rm $CONTAINER_ID/NAME --删除指定的容器
docker rm docker ps -a -q – 删除所有容器
注意,只能删除停止的容器
6. 备份与迁移
场景:
如果在测试环境下,你配置好的一个镜像,需要放到正式环境下运行、或者要备份一份,回头再用、或者要做集群,弄多份一模一样的容器。需要将容器打包备份为自己的镜像。
6.1 容器保存为自定义镜像
我们可以通过以下命令将容器保存为镜像
docker commit my_redis itcast/myredis:1.0.1
或
docker commit my_redis myredis:1.0.1
【提示】
如果你在下载镜像的时候,默认完全匹配本地镜像(镜像名字+版本号),如果找不到,则默认到docker.io(docker hub)上去寻找并下载到本地。
因此,自己将容器保存为镜像,的名字随意。
后面有私服了,则镜像名字的前缀有意思,代表的是私服地址。比如:itcast/tomcat:1.2,优先在本地镜像中寻找itcast/tomcat:1.2,如果找不到,则到itcast的私服中找tomcat:1.2
关于版本的问题:如果你不写,则默认版本是latest,建议写上。
此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器:
docker run -id -p 6380:6379 --name my_redis2 itcast/myredis:1.0.1
6.2 镜像备份
docker save -o itcast_redis_1.0.1.tar itcast/myredis:1.0.1
或
docker save -o itcast_redis_1.0.1.tar myredis:1.0.1
例如:在当前目录中将某镜像打包成文件。
[root@pinyoyougou-docker ~]# docker save -o itcast_redis_1.0.1.tar itcast/myredis:1.0.1
[root@pinyoyougou-docker ~]# ll
总用量 466400
-rw-------. 1 root root 1257 9月 14 19:42 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 10月 24 10:57 ip.txt
-rw-------. 1 root root 86680064 10月 24 12:09 itcast_redis_1.0.1.tar
-rw-r--r--. 1 root root 0 10月 24 10:38 test.txt
-o 输出到的文件
执行后,运行ls命令即可看到打成的tar包
6.3 镜像恢复
如何导入到docker中?
首先我们先删除掉itcast/tomcat:1.2镜像
然后执行此命令进行恢复
docker load -i itcast_tomcat-1.0.1.tar
-i 输入的文件
执行后再次查看镜像,可以看到镜像已经恢复
二、基于Docker的MySql相关命令集
1.Navicat连接MySql8.0
1.1、docker run -id --name=my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:版本号
1.2、docker exec -it my_mysql /bin/bash – 进入mysql容器(my_mysql是你的mysql容器名称)
1.3、mysql -u root -p --登陆mysql
1.4、use mysql --使用数据库mysql
1.5、select user,host,plugin from user; --查询使用的加密方式
1.6、alter user root@‘localhost’ identified with mysql_native_password by’123456’; --将当前加密方式为:caching_sha2_password 改为:mysql_native_password
注:此处由之前查询结果得到的root指定的host为localhost,所以sql语句中为root@'localhost,若是其他,需相对应修改
此处sql语句后的by ‘123456’是指定修改加密方式后root账号得密码。若不添加,修改后root的密码将会置为默认密码
1.6、flush privileges;–刷新权限即可
注意:阿里云需要配置安全组
三、基于Docker的MongoDB相关命令集
1.安装mogoDB
1.1、docker pull mongo:latest --拉取mogoDB
1.2、docker run -itd --name mongo -p 27017:27017 mongo --auth 启动mongoDB
2.设置mongoDB用户帐号
docker exec -it mongo mongo admin --交互式登陆MongoDB
db.auth(‘admin’, ‘123456’) --登陆权限账号
db.createUser({ user:‘admin’,pwd:‘123456’,roles:[ { role:‘userAdminAnyDatabase’, db: ‘admin’},“readWriteAnyDatabase”]}); --权限账号添加
3. 数据库操作
use 数据库名称 – 选择和创建数据库
show dbs --查看有权限查看的所有的数据库命令
db --查看当前正在使用的数据库命令
db.dropDatabase() --删除已持久化的数据库
4.集合操作(类似mysql中的表)
db.createCollection(name) --集合的显式创建
show collections --查看当前库中的表
db.集合名.drop() --集合的删除
4.1.文档插入
4.1.1单个文档插入
db.集合名.insert({json对象}) 例如:dbment.insert({“articleid”:“100000”,“content”:“今天天气真好,阳光明 媚”,“userid”:“1001”,“nickname”:“Rose”,“createdatetime”:new Date(),“likenum”:NumberInt(10),“state”:null})
4.1.2 批量文档插入
db.collection.insertMany( [ <document 1> , <document 2>, … ], { writeConcern: , ordered: } ) 例如:dbment.insertMany([ {“_id”:“1”,“articleid”:“100001”,“content”:“我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我 他。”,“userid”:“1002”,“nickname”:“相忘于江湖”,“createdatetime”:new Date(“2019-08- 05T22:08:15.522Z”),“likenum”:NumberInt(1000),“state”:“1”}, {“_id”:“2”,“articleid”:“100001”,“content”:“我夏天空腹喝凉开水,冬天喝温开水”,“userid”:“1005”,“nickname”:“伊人憔 悴”,“createdatetime”:new Date(“2019-08-05T23:58:51.485Z”),“likenum”:NumberInt(888),“state”:“1”}, {“_id”:“3”,“articleid”:“100001”,“content”:“我一直喝凉开水,冬天夏天都喝。”,“userid”:“1004”,“nickname”:“杰克船 长”,“createdatetime”:new Date(“2019-08-06T01:05:06.321Z”),“likenum”:NumberInt(666),“state”:“1”}, {“_id”:“4”,“articleid”:“100001”,“content”:“专家说不能空腹吃饭,影响健康。”,“userid”:“1003”,“nickname”:“凯 撒”,“createdatetime”:new Date(“2019-08-06T08:18:35.288Z”),“likenum”:NumberInt(2000),“state”:“1”}, {“_id”:“5”,“articleid”:“100001”,“content”:“研究表明,刚烧开的水千万不能喝,因为烫 嘴。”,“userid”:“1003”,“nickname”:“凯撒”,“createdatetime”:new Date(“2019-08- 06T11:01:02.521Z”),“likenum”:NumberInt(3000),“state”:“1”} ]);
4.2文档的查询
基本语法:db.collection.find(, [projection])
4.2.1. 查询所有 --db.集合名.find()&db.集合名.find({})
4.2.2. 按条件查询 --db.集合名.find({字段:条件,…})
4.2.3. 投影查询 --dbment.find({userid:“1003”},{userid:1,nickname:1,_id:0})
4.3文档的更新
4.3.1. 覆盖式更新:dbment.update({_id:“1”},{likenum:NumberInt(1001)})
4.3.2. 局部修改:dbment.update({_id:“2”},{KaTeX parse error: Expected 'EOF', got '}' at position 29: …NumberInt(889)}}̲) 4.3.3.批量的修改: …set:{nickname:“凯撒大帝”}},{multi:true})
4.3.4.列值增长的修改:dbment.update({_id:“3”},{$inc:{likenum:NumberInt(1)}})
4.4文档的分页查询
4.4.1、db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)–可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据
四、基于Docker的ElasticSearch安装
docker pull elasticsearch:版本号
docker run -id --name=es -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:版本号 --创建容器
== 注意:linux宿主中的vm.max_map_count至少需要262144 ==
永久修改:–vi /etc/sysctl.conf – 其中添加如下内容:vm.max_map_count=262144 --加载和查看效果
sysctl -p
五、基于Docker环境下elasticsearch-head安装
docker pull mobz/elasticsearch-head:5 --下载镜像
docker run -id --name=eshead -p 9100:9100 mobz/elasticsearch-head:5 --创建容器
解决elasticsearch跨域问题:
修改elasticsearch配置文件:elasticsearch.yml,增加以下两句配置:http.cors.enabled: true
http.cors.allow-origin: “*”
六、基于Docker环境下安装RabbitMQ
docker pull rabbitmq --拉取镜像
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq
通过docker ps -a 查看部署的mq容器id,在通过 docker exec -it 容器id /bin/bash 进入容器内部再运行:rabbitmq-plugins enable rabbitmq_management --启动mq
1、修改用户密码
第一步:进入 Docker 容器
docker exec -it myrabbitmq bash
第二步:查看当前用户列表
rabbitmqctl list_users
第三步:修改密码
rabbitmqctl change_password guest ‘636101’
2、安装延迟插件
第一步:前往官网下载插件–>rabbitmq_delayed_message_exchange-3.11.1.ez
下载地址: Community Plugins — RabbitMQ
第二步:将刚刚上传的插件拷贝到容器内plugins目录下
docker cp /root/rabbitmq_delayed_message_exchange-3.xx.x.ez rabbitmq:/plugins
第三步:上传之后进入容器内部
//进入容器 我这里使用容器名字 也可以用容器id进入
docker exec -it rabbitmq /bin/bash
//移动到plugins目录下
cd plugins
//查看是否上传成功
ls
3、解决点击channels报错Stats in management UI are disabled on this node
修改配置
docker exec -it rabbit /bin/bash
root@myRabbit:/# sed -i ‘s/true/false/g’ /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
重启容器
docker restart rabbitmq
七、基于Docker环境下安装Redis
版权声明:本文标题:服务器运维-Docker以及内部软件安装 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729437843a1201112.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论