首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >浅尝辄止MongoDB:管理(1)

浅尝辄止MongoDB:管理(1)

作者头像
用户1148526
发布于 2019-05-25 11:45:13
发布于 2019-05-25 11:45:13
1.5K0
举报
文章被收录于专栏:Hadoop数据仓库Hadoop数据仓库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1433210

目录

一、控制访问权限

1. 添加admin用户

2. 启用身份认证

3. 在mongo控制台中执行身份验证

5. 修改用户凭据

6. 添加只读用户

7. 删除用户

二、备份与还原

1. mongodump的各种备份方式

2. mongodump示例

3. 自动备份脚本

4. mongorestore的各种还原方式

5. mongorestore示例

三、导入与导出

1. mongoimport的各种导入方式

2. mongoimport示例

3. mongoexport的各种导出方式

4. mongoexport示例


代码语言:txt
AI代码解释
复制
    MongoDB和SQL数据库之间的主要区别是:
  • 不需要在服务器上创建数据库、集合或字段,因为MongoDB将在访问它们时动态创建这些元素。
  • MongoDB中的所有对象和元素名称都区分大小写。

一、控制访问权限

代码语言:txt
AI代码解释
复制
    MongoDB支持简单的基于角色的认证系统,其中包含预定义的系统角色和用户定义的定制角色,通过该系统可以控制用户对数据库的访问及他们被授予的访问级别。大多数修改配置数据或者对结果进行大幅调整的MongoDB服务器命令都被限制在专门的admin数据库中执行,该数据库将在每个新的MongoDB安装时自动创建。
代码语言:txt
AI代码解释
复制
    默认情况下,MongoDB不使用任何认证方式。任何可以访问网络的人都可以连接到服务器并执行命令。不过,可以在任何数据库中添加用户,这样就可以对MongoDB进行配置,使得在访问数据库时要求进行服务器验证。
代码语言:txt
AI代码解释
复制
    MongoDB支持对每个数据库的访问进行单独控制,访问控制信息被存储在特有的system.users集合中。对于希望访问两个数据库(例如db1和db2)的普通用户,他们的凭据和权限必须被同时添加到两个数据库中。
代码语言:txt
AI代码解释
复制
    如果在不同数据库为同一用户分别创建了登录和访问权限,这些记录不会互相同步。换句话说,修改一个数据库中的用户密码不会影响另一个数据库中的用户密码。该规则有一个例外:任何添加到admin数据库中的用户,在所有数据库中都拥有相同的访问权限,不需要为这样的用户单独赋予权限。

1. 添加admin用户

代码语言:javascript
AI代码解释
复制
> use admin;
switched to db admin
> db.createUser({user : "admin", pwd : "pass", roles: [ { role : "readWrite", db : "admin"
... }, { role: "userAdminAnyDatabase", db : "admin" } ] });
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "admin"
        },
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}
> db.system.users.findOne({user:"admin"})
{
    "_id" : "admin.admin",
    "user" : "admin",
    "db" : "admin",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "kLpduUuLPNHh5Z8RjuhPnw==",
            "storedKey" : "PKPFi5NDRmvDZj88cdSz1ZM+Ffk=",
            "serverKey" : "6r0EKeHkjp9pymkLJeLD0+krutY="
        },
        "SCRAM-SHA-256" : {
            "iterationCount" : 15000,
            "salt" : "BkiI7zbBQJ0b4LghbuGE0YxmvlbYNX0HryoN/w==",
            "storedKey" : "sgNs3puWRadYmxXjfSgoEzlxj1oOwB/Y5RdFQ2HTx5c=",
            "serverKey" : "+OLxG/kecq4zoWcOduouoLC1YFhQZ86wS/oMz1EXZ0o="
        }
    },
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "admin"
        },
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}
>

2. 启用身份认证

代码语言:txt
AI代码解释
复制
    可以用以下两种方式启用身份认证:
  • 在配置文件(如mongodb.conf)中添加auth=true,然后重启MongoDB。
  • 停止服务器并在启动参数中添加--auth。

3. 在mongo控制台中执行身份验证

代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongo
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2
> use admin
switched to db admin
> show collections;
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
> db.auth("admin","pass");
1
> show collections;
> db.getUsers();
[
    {
        "_id" : "admin.admin",
        "user" : "admin",
        "db" : "admin",
        "roles" : [
            {
                "role" : "readWrite",
                "db" : "admin"
            },
            {
                "role" : "userAdminAnyDatabase",
                "db" : "admin"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }
]
>
代码语言:txt
AI代码解释
复制
    如果使用admin凭证访问admin之外的数据库,那么必须首先针对admin数据库进行认证,否则无法访问系统中的任何其它数据库。
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongo
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2
> use test
switched to db test
> show collections;
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
> db.auth("admin","pass");
Error: Authentication failed.
0
> use admin
switched to db admin
> db.auth("admin","pass");
1
> use test;
switched to db test
> show collections;
products
>

5. 修改用户凭据

代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongo admin
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017/admin
MongoDB server version: 4.0.2
> db.auth("admin", "pass");
1
> use test;
switched to db test
> db.createUser({user : "foo", pwd : "foo" , roles: [ { role : "read", db : "test" } ] } );
Successfully added user: {
    "user" : "foo",
    "roles" : [
        {
            "role" : "read",
            "db" : "test"
        }
    ]
}
> db.getUsers();
[
    {
        "_id" : "test.foo",
        "user" : "foo",
        "db" : "test",
        "roles" : [
            {
                "role" : "read",
                "db" : "test"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }
]
> db.updateUser( "foo", {pwd : "pass", roles: [ { role : "dbAdmin", db : "test" } ] });
> db.getUsers();
[
    {
        "_id" : "test.foo",
        "user" : "foo",
        "db" : "test",
        "roles" : [
            {
                "role" : "dbAdmin",
                "db" : "test"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }
]
> db.auth("foo", "foo");
Error: Authentication failed.
0
> db.auth("foo", "pass");
1
>

6. 添加只读用户

代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongo admin
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017/admin
MongoDB server version: 4.0.2
> db.auth("admin", "pass");
1
> use test;
switched to db test
> db.createUser({user : "shadycharacter", pwd : "shadypassword" , roles: [ { role : "read", db : "test" } ] } );
Successfully added user: {
    "user" : "shadycharacter",
    "roles" : [
        {
            "role" : "read",
            "db" : "test"
        }
    ]
}
> db.auth("shadycharacter", "shadypassword");
1
> db.products.findOne();
2018-10-10T16:05:26.084+0800 E QUERY    [js] Error: error: {
    "ok" : 0,
    "errmsg" : "too many users are authenticated",
    "code" : 13,
    "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBCommandCursor@src/mongo/shell/query.js:708:1
DBQuery.prototype._exec@src/mongo/shell/query.js:113:28
DBQuery.prototype.hasNext@src/mongo/shell/query.js:288:5
DBCollection.prototype.findOne@src/mongo/shell/collection.js:254:10
@(shell):1:1
> exit
bye
[mongodb@hdp4~]$mongo test
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017/test
MongoDB server version: 4.0.2
> db.auth("shadycharacter", "shadypassword");
1
> db.products.findOne();
{ "_id" : 20, "item" : "large box", "qty" : 20 }
> db.products.insertOne(  { _id: 100, item: "large box", qty: 20 }  );
2018-10-10T16:05:59.808+0800 E QUERY    [js] WriteCommandError: not authorized on test to execute command { insert: "products", ordered: true, lsid: { id: UUID("679644a1-2281-406e-85b1-986948ee04b4") }, $db: "test" } :
WriteCommandError({
    "ok" : 0,
    "errmsg" : "not authorized on test to execute command { insert: \"products\", ordered: true, lsid: { id: UUID(\"679644a1-2281-406e-85b1-986948ee04b4\") }, $db: \"test\" }",
    "code" : 13,
    "codeName" : "Unauthorized"
})
WriteCommandError@src/mongo/shell/bulk_api.js:420:48
Bulk/executeBatch@src/mongo/shell/bulk_api.js:902:1
Bulk/this.execute@src/mongo/shell/bulk_api.js:1150:21
DBCollection.prototype.insertOne@src/mongo/shell/crud_api.js:252:9
@(shell):1:1
>

7. 删除用户

代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongo admin
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017/admin
MongoDB server version: 4.0.2
> db.auth("admin","pass");
1
> use test;
switched to db test
> db.dropUser("shadycharacter");
true
> db.getUsers();
[
    {
        "_id" : "test.foo",
        "user" : "foo",
        "db" : "test",
        "roles" : [
            {
                "role" : "dbAdmin",
                "db" : "test"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }
]
>

二、备份与还原

1. mongodump的各种备份方式

代码语言:javascript
AI代码解释
复制
# 无账号、密码
mongodump -o backup   #备份所有数据库到backup目录下,每个数据库一个文件,除local数据库外。
mongodump -d abc -o backup   #备份abc数据库到backup目录下。
mongodump -d abc -c ddd -o backup   #备份abc数据库下的ddd集合。

#有账号、密码
mongodump -udba -pdba -d abc -c ddd -o backup   #备份abc数据库下的ddd集合。
mongodump --host=127.0.0.1 --port=27017 -udba -p --db=abc --collection=ddd -o backup
代码语言:txt
AI代码解释
复制
    这里需要注意的是:在认证备份中,比如在abc数据库中,需要其有dba这个账号才可以执行备份,要是abc数据库里没有账号,那么需要在admin上认证,再执行需要加:authenticationDatabase参数指定保存用户凭证的数据库,没有指定则去-d指定的数据库认证。最好还是设置专本备份的账号。
代码语言:javascript
AI代码解释
复制
mongodump -udba -pdba -d abc --authenticationDatabase admin -o backup   #在admin数据库下认证之后再去备份abc数据库。

2. mongodump示例

代码语言:txt
AI代码解释
复制
    备份test库:
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongodump -u wxy --authenticationDatabase admin -d test -o ./dump
Enter password:

2018-10-10T10:05:25.831+0800    writing test.products to 
2018-10-10T10:05:25.903+0800    done dumping test.products (3 documents)
[mongodb@hdp4~]$
代码语言:txt
AI代码解释
复制
    命令执行后生成./dump/test目录和相关文件:
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$ll ./dump/test
total 8
-rw-rw-r-- 1 mongodb mongodb 154 Oct 10 10:05 products.bson
-rw-rw-r-- 1 mongodb mongodb 127 Oct 10 10:05 products.metadata.json
[mongodb@hdp4~]$
代码语言:txt
AI代码解释
复制
    products是集合名称。.bson文件存储集合数据,该文件只是MongoDB内部存储的BSON格式文件的一个副本。.json文件存储元数据,包括集合的索引及其定义。mongodump工具在写入备份文件之前不会清空输出目录中的内容,而只是覆盖同名文件。除非希望覆盖备份中的数据,否则应该在使用mongodump之前保证清空目标目录。

3. 自动备份脚本

代码语言:javascript
AI代码解释
复制
#!/bin/bash
##########################################
# Edit these to define source and destinations

MONGO_DBS=""
BACKUP_TMP=~/tmp
BACKUP_DEST=~/backups
MONGODUMP_BIN=/home/mongodb/mongodb-4.0.2/bin/mongodump
TAR_BIN=/usr/bin/tar

##########################################

BACKUPFILE_DATE=`date +%Y%m%d-%H%M`

# _do_store_archive <Database> <Dump_dir> <Dest_Dir> <Dest_file>

function _do_store_archive {
         mkdir -p $3
         cd $2
         tar -cvzf $3/$4 dump
}

# _do_backup <Database name>

function _do_backup {
         UNIQ_DIR="$BACKUP_TMP/$1"`date "+%s"`
         mkdir -p $UNIQ_DIR/dump
         echo "dumping Mongo Database $1"
         if [ "all" = "$1" ]; then

                 $MONGODUMP_BIN -o $UNIQ_DIR/dump -u wxy --authenticationDatabase admin
         else

                 $MONGODUMP_BIN -d $1 -o $UNIQ_DIR/dump -u wxy --authenticationDatabase admin

         fi

         KEY="database-$BACKUPFILE_DATE.tgz"
         echo "Archiving Mongo database to $BACKUP_DEST/$1/$KEY"
         DEST_DIR=$BACKUP_DEST/$1
         _do_store_archive $1 $UNIQ_DIR $DEST_DIR $KEY

         rm -rf $UNIQ_DIR
}

# check to see if individual databases have been specified, otherwise backup the whole server to "all"

if [ "" = "$MONGO_DBS" ]; then
        MONGO_DB="all"
        _do_backup $MONGO_DB
else
        for MONGO_DB in $MONGO_DBS; do
                _do_backup $MONGO_DB
        done
fi

4. mongorestore的各种还原方式

代码语言:javascript
AI代码解释
复制
mongorestore -udba -pdba -d abc backup/abc   #还原abc数据库。
mongorestore -udba -pdba -d abc --drop backup/abc   #还原之前先删除原来数据库(集合)。
mongorestore -udba -pdba -d abc -c ddd --drop backup/abc/ddd.bson   #还原abc库中的ddd集合。
mongorestore --host=127.0.0.1 --port=27017 -udba -pdba -d abc -c test --drop backup/abc/test.bson   #还原abc库中的test集合。
mongorestore --host=127.0.0.1 --port=27017 -udba -pdba -d abc -c ooo --drop backup/abc/test.bson   #还原abc库中的test集合到ooo集合。

5. mongorestore示例

代码语言:txt
AI代码解释
复制
    恢复整个备份:
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongorestore --drop -u wxy --authenticationDatabase admin ./dump
Enter password:

2018-10-10T10:06:11.239+0800    preparing collections to restore from
2018-10-10T10:06:11.381+0800    reading metadata for test.products from dump/test/products.metadata.json
2018-10-10T10:06:11.465+0800    restoring test.products from dump/test/products.bson
2018-10-10T10:06:11.541+0800    no indexes to restore
2018-10-10T10:06:11.541+0800    finished restoring test.products (3 documents)
2018-10-10T10:06:11.541+0800    done
[mongodb@hdp4~]$
代码语言:txt
AI代码解释
复制
    恢复单个库:
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongorestore --drop -u wxy --authenticationDatabase admin -d test ./dump/test/
Enter password:

2018-10-10T10:16:22.666+0800    the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2018-10-10T10:16:22.666+0800    building a list of collections to restore from dump/test dir
2018-10-10T10:16:22.739+0800    reading metadata for test.products from dump/test/products.metadata.json
2018-10-10T10:16:22.781+0800    restoring test.products from dump/test/products.bson
2018-10-10T10:16:22.818+0800    no indexes to restore
2018-10-10T10:16:22.818+0800    finished restoring test.products (3 documents)
2018-10-10T10:16:22.818+0800    done
[mongodb@hdp4~]$
代码语言:txt
AI代码解释
复制
    恢复单个集合:
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongorestore --drop -u wxy --authenticationDatabase admin -d test -c products ./dump/test/products.bson 
Enter password:

2018-10-10T10:17:33.139+0800    checking for collection data in dump/test/products.bson
2018-10-10T10:17:33.287+0800    reading metadata for test.products from dump/test/products.metadata.json
2018-10-10T10:17:33.372+0800    restoring test.products from dump/test/products.bson
2018-10-10T10:17:33.449+0800    no indexes to restore
2018-10-10T10:17:33.449+0800    finished restoring test.products (3 documents)
2018-10-10T10:17:33.449+0800    done
[mongodb@hdp4~]$

三、导入与导出

1. mongoimport的各种导入方式

代码语言:txt
AI代码解释
复制
    mongoimport支持CSV(逗号分隔)、TSV(TAB分隔)、JSON(支持可变模式)三种文件格式的数据。
代码语言:javascript
AI代码解释
复制
mongoimport -udba -pdba -dabc -ciii --authenticationDatabase admin backup/ddd.txt   #导入到iii集合
mongoimport -udba -pdba -dabc -ceee --type=csv --headerline --authenticationDatabase admin backup/ddd.csv   #csv导入,需要指定headerline
mongoimport -udba -pdba -dabc -ceee --type=csv --headerline --ignoreBlanks --drop --authenticationDatabase admin backup/ddd.csv   #不导入空字段,指定ignoreBlanks。

2. mongoimport示例

代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$more a.txt 
_id,item,qty
20,large box,20
21,small box,55
22,medium box,30
[mongodb@hdp4~]$mongoimport --drop -u wxy --authenticationDatabase admin -d test -c products --type csv --headerline a.txt
Enter password:

2018-10-10T12:44:30.216+0800    connected to: localhost
2018-10-10T12:44:30.287+0800    dropping: test.products
2018-10-10T12:44:30.447+0800    imported 3 documents
[mongodb@hdp4~]$mongo -u wxy --authenticationDatabase admin test --eval "printjson(db.products.find().count())"
MongoDB shell version v4.0.2
Enter password: 
connecting to: mongodb://127.0.0.1:27017/test
MongoDB server version: 4.0.2
3
[mongodb@hdp4~]$

3. mongoexport的各种导出方式

代码语言:javascript
AI代码解释
复制
mongoexport -udba -pdba -dabc -cddd --authenticationDatabase admin -o backup/ddd.txt   # 导出txt文本
mongoexport -udba -pdba -dabc -cddd -f sno,sname --authenticationDatabase admin -o backup/ddd.txt   # 指定字段导出txt文本
mongoexport -udba -pdba -dabc -cddd -f sno,sname --csv --authenticationDatabase admin -o backup/ddd.csv   # 导出成csv格式的需要指定字段-f
mongoexport -udba -pdba -dabc -cddd -q '{"sno":{"$gte":5}}' -f sno,sname --csv --authenticationDatabase admin -o backup/ddd.csv   # 按照-q里的条件导出

4. mongoexport示例

代码语言:javascript
AI代码解释
复制
> db.products.find();
{ "_id" : 20, "item" : "large box", "qty" : 20 }
{ "_id" : 21, "item" : "small box", "qty" : 55 }
{ "_id" : 22, "item" : "medium box", "qty" : 30 }
>
代码语言:txt
AI代码解释
复制
    带条件导出products集合:
代码语言:javascript
AI代码解释
复制
[mongodb@hdp4~]$mongoexport -u wxy --authenticationDatabase admin -d test -c products -q '{qty:{$gte:30}}' -f _id,item,qty --type=csv -o a.csv
Enter password:

2018-10-10T13:52:02.762+0800    connected to: localhost
2018-10-10T13:52:02.762+0800    exported 2 records
[mongodb@hdp4~]$more a.csv
_id,item,qty
21,small box,55
22,medium box,30
[mongodb@hdp4~]$
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年10月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker环境的持续部署优化实践
那年公司快速成长,频繁上线新项目,每上线一个项目,就需要新申请一批机器,初始化,部署依赖的服务环境,一个脚本行天下
37丫37
2019/03/14
9710
Docker环境的持续部署优化实践
Docker容器与容器云
2.容器云:以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建、发布和运行分布式应用的平台
硬核项目经理
2019/08/06
3.4K0
【Docker】容器化应用程序的配置管理策略与实践
Docker是一种开源的容器化平台,简化应用程序的打包、交付和运行过程。基于Linux容器技术,通过提供一个轻量级、可移植和自包含的容器来实现应用程序的隔离和部署。
DS小龙哥
2023/09/09
9960
【Docker】容器化应用程序的配置管理策略与实践
京东mPaaS平台之Android组件化系统私有化部署改造实践
系统上云是科技企业及传统企业降本增效、协同办公等有效的助力方式。本文将京东mPaaS平台下的Aura平台(Android组件平台)在T-PaaS环境进行私有化部署改造的历程记录下来,分享给大家。
京东技术
2021/03/16
1.1K0
ofo 基于 K8S 容器云平台的实践
| 为 | 容 | 器 | 技 | 术 | 而 | 生 |
CNCF
2019/12/06
1.5K0
Kubernetes在宜信落地实践
伴随着微服务的架构的普及,结合开源的Dubbo和Spring Cloud等微服务框架,宜信内部很多业务线逐渐了从原来的单体架构逐渐转移到微服务架构。应用从有状态到无状态,具体来说将业务状态数据如:会话、用户数据等存储到中间件中服务中。
宜信技术学院
2019/06/28
1K0
OpenShift总体架构设计
OpenShift被其供应商Red Hat称为“ 企业级Kubernetes”。其实Kubernetes是OpenShift不可或缺的一部分,并围绕它构建了更多功能。
网络安全观
2021/03/01
1.6K0
普元容器云关键设计和实践之路
目前,DevOps,微服务与容器云,可以说是炙手可热的三大话题,甚至可以说它们是云时代企业新一代IT架构的三大基石也不为过。微服务主要解决的是开发期的设计问题,DevOps则是解决开发,测试与运维之间的衔接问题,容器云则是重点在于简化部署与解放运维。
yuanyi928
2018/07/26
1.1K0
普元容器云关键设计和实践之路
持续交付:云原生应用的“十二要素”
“独立系统的架构原则”(https://isa-principles.org/)与“十二要素应用”密切相关,但前者更注重架构方面。这些原则基于微服务,尤其是自包含系统(SCS)的经验,是一组最佳实践的集合。
用户1682855
2019/11/05
1.5K0
持续交付:云原生应用的“十二要素”
【笔记】Enjoy Docker
容器核心技术,包括容器规范,容器runtime,容器管理工具,容器定义工具,容器OS,Registries。
于顾而言SASE
2024/10/28
2340
【笔记】Enjoy Docker
Kubernetes容器云平台实践
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经成为应用容器化平台的标准,越来越受到企业的青睐,在生产中也应用的也越来越广泛。 我们的容器平台建设从2016年开始,大致经历了探索预研、体系建设和平台落地这样三个阶段。
孙杰
2019/10/29
3.2K0
Kubernetes容器云平台实践
构建一个高可用及自动发现的 Docker 基础架构
本文介绍了如何使用Docker、HAProxy和Consul构建高可用性且可扩展的微服务架构。通过详细阐述Docker的部署、HAProxy的配置以及Consul的配置和使用,使读者对微服务架构的高可用性需求有深入的理解。
刘天斯
2017/06/27
3.3K0
构建一个高可用及自动发现的 Docker 基础架构
利用Docker开启持续交付之路
持续交付即Continuous Delivery,简称CD,随着DevOps的流行正越来越被传统企业所重视。持续交付讲求以短周期、小细粒度,自动化的方式频繁的交付软件,在这个过 程中要求开发、测试、用户体验等角色紧密合作,快速收集反馈,从而不断改善软件质量并减少浪费。然而,在我所接触的传统企业中,对于持续交付实践的实施都 还非常初级,坦白说,大部分还停留的手工生成发布包,手工替换文件进行部署的阶段,这样做无疑缺乏管理且容易出错。如果究其原因,我想主要是因为构建一个 可实际运行且适合企业自身环境的持续发布
小小科
2018/05/02
1.8K0
利用Docker开启持续交付之路
DevOps最佳实践-处理好敏捷研发,持续集成和容器云三者集成
今天准备谈下DevOps过程最佳实践以及DevOps支撑平台建设中的一些思考。在前面文章里面我就已经谈到了传统企业IT架构转型或企业数字化建设需要解决两个方面问题。
人月聊IT
2025/06/24
2920
DevOps最佳实践-处理好敏捷研发,持续集成和容器云三者集成
Jenkins 配合 Kubernetes 实现服务持续集成的实践和建议
当你在网上搜索 Jenkins 持续集成 dockers/kubernetes 时,80% 答案是在Kubernetes集群中容器化 Jenkins,在我看来,对于业务服务数量有限的互联网公司,前期的话,不是特别建议把Jenkins直接安装到kubernetes集群当中,特别是在没有使用 Kubernetes 容器云平台之前已经有了自动化构建工具,有以下原因:
用户5166556
2020/04/22
1.9K1
Jenkins 配合 Kubernetes 实现服务持续集成的实践和建议
多环境下的微服务持续交付实践
本文通过部署一个基于Dubbo的微服务项目——Q云书城(QCBM)(图1-1),介绍如何在多环境下部署微服务持续交付项目。通过使用Zadig持续部署工具,展示多环境配置、微服务构建、工作流交付及运行时管理的完整过程,提供一种多环境下持续集成、持续交付及云原生微服务管理能力的解决方案。(图1-2)
远远小七宝
2022/12/01
2.4K0
多环境下的微服务持续交付实践
从Docker Machine到K8S:容器管理为啥有这么多工具?
首先,我们当然可以在单台ESXi主机上通过CLI命令行或者Vmware Host Client可视化工具来创建和管理虚拟机;可以在这台主机上创建多个虚拟机等。
嘉为蓝鲸
2018/12/21
1.4K0
Kubernetes+Docker+Istio 容器云实践
随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求。近年来,互联网、移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的容器云方案也随之进入了大众的视野。开普勒云是一个基于Kubernetes+Docker+Istio的微服务治理解决方案。
宜信技术学院
2019/10/17
1.1K0
Kubernetes(一) - Docker管理工具
Kubernetes(一) - Docker管理工具 虽然Docker已经很强大了,但是在实际使用上还是有诸多不便,比如集群管理,资源调度文件管理等等,那么在这样一个百花齐放的容器时代涌现出了很多解决
喵了个咪233
2018/07/06
8320
容器云服务是什么?
容器云是一种以容器技术为核心的云计算服务形态,其核心目标是通过标准化封装应用及其依赖环境,实现跨平台快速部署和高效管理。容器技术将应用程序与所需的运行库、配置等资源打包为轻量化的独立单元(容器),确保应用在不同计算环境中保持行为一致性。
云惑雨问
2025/03/10
7140
推荐阅读
相关推荐
Docker环境的持续部署优化实践
更多 >
交个朋友
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术工作实战群
获取实战干货 交流技术经验
加入[数据库] 腾讯云官方技术交流站
数据库问题秒解答 分享实践经验
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
首页
学习
活动
专区
圈层
工具
MCP广场
首页
学习
活动
专区
圈层
工具
MCP广场