admin管理员组

文章数量:1646316

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