「更易用的OceanBase」| 制作自定义OceanBase容器——逆向思维(一)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 「更易用的OceanBase」| 制作自定义OceanBase容器——逆向思维

前言


使用容器版本安装部署数据库时,是为了更方便便捷的使用,作者在使用OceanBase容器版本部署的时候并未发现相关的Dockerfile且镜像较大,这就导致不能更好的自定义功能,有些背离了容器版本的初衷。

本文利用docker history命令从镜像层剥离dockerfile的相关命令,然后从运行的容器里反推找到boot,涉及到的安装包依赖环境,最终实现dockerfile的编写,替换基础镜像为Ubuntu,最终镜像大小减少了150MB,文末提供了阿里云和docker hub镜像地址及dockerfile 码云地置,欢迎大家测试使用。

一、安装Docker

1. 安装并启动Docker

[root@oceanbase1 ~]# yum install -y yum-utils   device-mapper-persistent-data   lvm2
[root@oceanbase1 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@oceanbase1 ~]# yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
[root@oceanbase1 ~]# systemctl start docker
[root@oceanbase1 ~]# systemctl enable docker

二、解析Dockerfile

1. pull

[root@oceanbase1 ~]# docker pull oceanbase/oceanbase-ce
Using default tag: latest
latest: Pulling from oceanbase/oceanbase-ce
13add961a70d: Pull complete
c8175aff0e18: Pull complete
39c994bcc219: Pull complete
71a870d28c6f: Pull complete
Digest: sha256:6c3f458abc38a017e604af1188726174b6dc81f38c96e2869dc2cb04931a8cd8
Status: Downloaded newer image for oceanbase/oceanbase-ce:latest
docker.io/oceanbase/oceanbase-ce:latest

2. 解析

  • 从create by字段提取部分dockerfile内容
[root@oceanbase1 ~]# docker history 4af946862346 --no-trunc
IMAGE                                                                     CREATED         CREATED BY                                                                                                                                                                                                                                                                                                                                                                                           SIZE      COMMENT
sha256:4af94686234630b4e86297637deefbb6e090f1893545aa803dec03269c3e62ca   3 months ago    /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "_boot"]                                                                                                                                                                                                                                                                                                                                                      0B
<missing>                                                                 3 months ago    /bin/sh -c #(nop) WORKDIR /root                                                                                                                                                                                                                                                                                                                                                                      0B
<missing>                                                                 3 months ago    /bin/sh -c #(nop)  ENV PATH=/root/boot:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin                                                                                                                                                                                                                                                                                                  0B
<missing>                                                                 3 months ago    /bin/sh -c #(nop) COPY dir:8ca8c9383f9767b320dbc0cab03d57ccb39997339cf90b023c4348232edc46e5 in /root/boot/                                                                                                                                                                                                                                                                                           5.32kB
<missing>                                                                 3 months ago    |1 VERSION=3.1.4-10000092022071511 /bin/sh -c mkdir /root/pkg &&     cd /root/pkg &&     wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-${VERSION}.el7.x86_64.rpm -q &&     wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-libs-${VERSION}.el7.x86_64.rpm -q &&     rm -rf /usr/obd/mirror/remote/* &&     yum clean all   51.5MB
<missing>                                                                 3 months ago    |1 VERSION=3.1.4-10000092022071511 /bin/sh -c yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo &&     yum install -y ob-deploy obclient ob-sysbench wget libaio &&     rm -rf /usr/obd/mirror/remote/* &&     rm -rf /u01/mysql /u01/obclient/bin/mysqld* /u01/obclient/bin/aria* /u01/obclient/bin/maria* &&     yum clean all                                     292MB
<missing>                                                                 3 months ago    /bin/sh -c #(nop)  ARG VERSION=3.1.3-10100032022041510                                                                                                                                                                                                                                                                                                                                               0B
<missing>                                                                 15 months ago                                                                                                                                                                                                                                                                                                                                                                                                        214MB
  • 找到基础镜像
[root@oceanbase1 oceanbase-docker]# docker start e6318f6ec467
e6318f6ec467
[root@oceanbase1 oceanbase-docker]# docker exec -it oceanbase-ce bash
[root@e6318f6ec467 ~]#
[root@e6318f6ec467 ~]#
[root@e6318f6ec467 ~]# lsb_release
LSB Version:    :core-4.1-amd64:core-4.1-noarch
[root@e6318f6ec467 ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:        7.9.2009
Codename:       Core
  • 初版Dockerfile
[root@oceanbase1 oceanbase-docker]# cat Dockerfile
FROM centos:centos7.9.2009
COPY boot /root/boot/
RUN VERSION=3.1.4-10000092022071511 yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo && \
    yum install -y ob-deploy obclient ob-sysbench wget libaio &&  \
    rm -rf /usr/obd/mirror/remote/* &&  \
    rm -rf /u01/mysql /u01/obclient/bin/mysqld* /u01/obclient/bin/aria* /u01/obclient/bin/maria* && \
    yum clean all
RUN VERSION=3.1.4-10000092022071511 mkdir /root/pkg && \
    cd /root/pkg && wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-${VERSION}.el7.x86_64.rpm -q && \
    wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-libs-${VERSION}.el7.x86_64.rpm -q && \
    rm -rf /usr/obd/mirror/remote/* &&\
    yum clean all
ENV PATH=/root/boot:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
WORKDIR /root
CMD ["/bin/sh" "-c" "_boot"]
  • 从已有的容器里拷贝_boot
[root@oceanbase1 oceanbase-docker]# docker cp e6318f6ec467:/root/_boot .

三、构建与优化

1. 第一次构建

[root@oceanbase1 oceanbase-docker]# pwd
/root/oceanbase-docker
[root@oceanbase1 oceanbase-docker]# ls
boot  Dockerfile
[root@oceanbase1 oceanbase-docker]# docker build -t oceanbase:test .
Sending build context to Docker daemon  188.1MB
Step 1/7 : FROM centos:centos7.9.2009
 ---> eeb6ee3f44bd
Step 2/7 : COPY boot /root/boot/
 ---> Using cache
 ---> 7af2ff5bab30
Step 3/7 : RUN VERSION=3.1.4-10000092022071511 yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo &&     yum install -y ob-deploy obclient ob-sysbench wget libaio &&      rm -rf /usr/obd/mirror/remote/* &&      rm -rf /u01/mysql /u01/obclient/bin/mysqld* /u01/obclient/bin/aria* /u01/obclient/bin/maria* &&     yum clean all
 ---> Running in 39431507a097
Loaded plugins: fastestmirror, ovl
adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo
grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo
repo saved to /etc/yum.repos.d/OceanBase.repo
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed
---> Package ob-deploy.x86_64 0:1.5.0-12.el7 will be installed
---> Package ob-sysbench.x86_64 0:1.0.20-3.el7 will be installed
---> Package obclient.x86_64 0:2.0.2-3.el7 will be installed
--> Processing Dependency: libobclient >= 2.0.0 for package: obclient-2.0.2-3.el7.x86_64
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be installed
--> Running transaction check
---> Package libobclient.x86_64 0:2.0.2-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package       Arch     Version              Repository                    Size
================================================================================
Installing:
 libaio        x86_64   0.3.109-13.el7       base                          24 k
 ob-deploy     x86_64   1.5.0-12.el7         oceanbase.community.stable    33 M
 ob-sysbench   x86_64   1.0.20-3.el7         oceanbase.development-kit    346 k
 obclient      x86_64   2.0.2-3.el7          oceanbase.community.stable   173 M
 wget          x86_64   1.14-18.el7_6.1      base                         547 k
Installing for dependencies:
 libobclient   x86_64   2.0.2-2.el7          oceanbase.community.stable   847 k
Transaction Summary
================================================================================
Install  5 Packages (+1 Dependent package)
Total download size: 208 M
Installed size: 802 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/libaio-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for libaio-0.3.109-13.el7.x86_64.rpm is not installed
warning: /var/cache/yum/x86_64/7/oceanbase.development-kit/packages/ob-sysbench-1.0.20-3.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID e9b4a7aa: NOKEY
Public key for ob-sysbench-1.0.20-3.el7.x86_64.rpm is not installed
Public key for libobclient-2.0.2-2.el7.x86_64.rpm is not installed
^C

2. 第一次优化

  • 会hang在这里很久(因为rpm下载太慢了),且有些warning。我们来优化一下。
  • 提前下载好rpm
  • yum 加上 --nogpgcheck
[root@oceanbase1 rpm]# yumdownloader ob-deploy obclient ob-sysbench wget libaio
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
(1/5): libaio-0.3.109-13.el7.x86_64.rpm                                                                                                               |  24 kB  00:00:00
(2/5): libaio-0.3.109-13.el7.i686.rpm                                                                                                                 |  24 kB  00:00:00
(3/5): ob-sysbench-1.0.20-3.el7.x86_64.rpm                                                                                                            | 346 kB  00:00:01
(4/5): ob-deploy-1.5.0-12.el7.x86_64.rpm                                                                                                              |  33 MB  00:02:54
(5/5): obclient-2.0.2-3.el7.x86_64.rpm                                                                                                                | 173 MB  00:18:35
  • 由于缺少resolve忘记解决依赖,这里再下载一次解决依赖
error: Failed dependencies:
        libobclient >= 2.0.0 is needed by obclient-2.0.2-3.el7.x86_64
[root@oceanbase1 rpm]# yumdownloader ob-deploy obclient ob-sysbench wget libaio --resolve
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
--> Running transaction check
---> Package libaio.i686 0:0.3.109-13.el7 will be installed
---> Package libaio.x86_64 0:0.3.109-13.el7 will be reinstalled
---> Package ob-deploy.x86_64 0:1.5.0-12.el7 will be reinstalled
---> Package ob-sysbench.x86_64 0:1.0.20-3.el7 will be installed
---> Package obclient.x86_64 0:2.0.2-3.el7 will be installed
--> Processing Dependency: libobclient >= 2.0.0 for package: obclient-2.0.2-3.el7.x86_64
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be installed
--> Running transaction check
---> Package libobclient.x86_64 0:2.0.2-2.el7 will be installed
--> Finished Dependency Resolution
libobclient-2.0.2-2.el7.x86_64.rpm                                                                                                                    | 847 kB  00:00:07
[root@oceanbase1 oceanbase-docker]# ls
boot  Dockerfile  pkg
[root@oceanbase1 oceanbase-docker]# ls pkg/
libaio-0.3.109-13.el7.i686.rpm      obclient-2.0.2-3.el7.x86_64.rpm      wget-1.14-18.el7_6.1.x86_64.rpm
libaio-0.3.109-13.el7.x86_64.rpm    ob-deploy-1.5.0-12.el7.x86_64.rpm
libobclient-2.0.2-2.el7.x86_64.rpm  ob-sysbench-1.0.20-3.el7.x86_64.rpm
  • Dockerfile
[root@oceanbase1 oceanbase-docker]# cat Dockerfile
FROM centos:centos7.9.2009
COPY boot /root/boot/
COPY pkg /root/pkg/
RUN yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo && \
    cd /root/pkg/ && \
    rpm -ivh libobclient-2.0.2-2.el7.x86_64.rpm libaio-0.3.109-13.el7.i686.rpm libaio-0.3.109-13.el7.x86_64.rpm wget-1.14-18.el7_6.1.x86_64.rpm ob-sysbench-1.0.20-3.el7.x86_64.rpm obclient-2.0.2-3.el7.x86_64.rpm ob-deploy-1.5.0-12.el7.x86_64.rpm --nosignature && \
    rm -rf /usr/obd/mirror/remote/* &&  \
    rm -rf /u01/mysql /u01/obclient/bin/mysqld* /u01/obclient/bin/aria* /u01/obclient/bin/maria* && \
    yum clean all
RUN  cd /root/pkg && \
    rm -rf /usr/obd/mirror/remote/* &&\
    yum clean all
ENV PATH=/root/boot:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
WORKDIR /root
CMD ["_boot"]

3. 第二次构建

[root@oceanbase1 oceanbase-docker]# docker build -t oceanbase:test .
Sending build context to Docker daemon  267.6MB
Step 1/8 : FROM centos:centos7.9.2009
 ---> eeb6ee3f44bd
Step 2/8 : COPY boot /root/boot/
 ---> 24c19ac56e04
Step 3/8 : COPY pkg /root/pkg/
 ---> e38480da210a
Step 4/8 : RUN yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo &&     cd /root/pkg/ &&    wget-1.14-18.el7_6.1.x86_64.rpm ob-sysbench-1.0.20-3.el7.x86_64.rpm obclient-2.0.2-3.el7.x86_64.rpm ob-deploy-1.5.0-12.el7mysqld* /u01/obclient/bin/aria* /u01/obclient/bin/maria* &&     yum clean all
 ---> Running in 4114dfe9a87d
Loaded plugins: fastestmirror, ovl
adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo
grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo
repo saved to /etc/yum.repos.d/OceanBase.repo
Preparing...                          ########################################
Updating / installing...
libobclient-2.0.2-2.el7               ########################################
obclient-2.0.2-3.el7                  ########################################
ob-sysbench-1.0.20-3.el7              ########################################
Please execute 'sysbench --help' for more information.
ob-deploy-1.5.0-12.el7                ########################################
Installation of obd finished successfully
Please source /etc/profile.d/obd.sh to enable it
wget-1.14-18.el7_6.1                  ########################################
libaio-0.3.109-13.el7                 ########################################
libaio-0.3.109-13.el7                 ########################################
Loaded plugins: fastestmirror, ovl
Cleaning repos: base extras oceanbase.community.stable oceanbase.development-kit
              : updates
Removing intermediate container 4114dfe9a87d
 ---> b37b0839eee8
Step 5/8 : RUN  cd /root/pkg &&     rm -rf /usr/obd/mirror/remote/* &&    yum clean all
 ---> Running in 60a2414469b0
Loaded plugins: fastestmirror, ovl
Cleaning repos: base extras oceanbase.community.stable oceanbase.development-kit
              : updates
Removing intermediate container 60a2414469b0
 ---> 7af143f83ce7
Step 6/8 : ENV PATH=/root/boot:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 ---> Running in 72f0ff83e8b7
Removing intermediate container 72f0ff83e8b7
 ---> ede9c5ba9d54
Step 7/8 : WORKDIR /root
 ---> Running in e623e0996d35
Removing intermediate container e623e0996d35
 ---> 0234ff905a4f
Step 8/8 : CMD ["_boot"]
 ---> Running in d580c4e5789a
Removing intermediate container d580c4e5789a
 ---> 25185d7fa0e9
Successfully built 25185d7fa0e9
Successfully tagged oceanbase:test

4. 启动测试

  • run
[root@oceanbase1 oceanbase-docker]# docker run -p 2881:2881 --name oceanbase-test -e MINI_MODE=1 -d oceanbase:test
a45de8f8730fc6bba2acd69792e9cf067e37581bf3a72e5a42a4e563c03904ff
[root@oceanbase1 oceanbase-docker]# docker logs -f oceanbase-test
generate boot.yaml ...
oceanbase-ce docker in mini mode
create boot dirs and deploy ob cluster ...
...
...
name: wget
version: 1.14
release:18.el7_6.1
arch: x86_64
md5: c87f4d3b21d1cb8509fbaadb65eeefc7ca579064
add /root/pkg/wget-1.14-18.el7_6.1.x86_64.rpm to local mirror
+---------------------------------------------------------------------------------------------------------+
|                                            local Package List                                           |
+-------------------+---------+-----------------------+--------+------------------------------------------+
| name              | version | release               | arch   | md5                                      |
+-------------------+---------+-----------------------+--------+------------------------------------------+
| libaio            | 0.3.109 | 13.el7                | i686   | b1f4b46fe5bf353650905a8e7965710f3831e18d |
| libaio            | 0.3.109 | 13.el7                | x86_64 | a6059890e3323e2a5d0a372e4e3d6f1399dc5c76 |
| libobclient       | 2.0.2   | 2.el7                 | x86_64 | 9380b4f5ca295ce75ae56db4f0f09b4effd2e704 |
| ob-deploy         | 1.5.0   | 12.el7                | x86_64 | 5406e26462200de99df15b8f4ef062beb7f6c52a |
| ob-sysbench       | 1.0.20  | 3.el7                 | x86_64 | b611500b4bdaa0dc680ac6b5808a10185b71231b |
| obclient          | 2.0.2   | 3.el7                 | x86_64 | 4b180b2b1ee84f282cf39bf4f585df010f62b9a6 |
| oceanbase-ce      | 3.1.4   | 10000092022071511.el7 | x86_64 | c5cd94f4f190317b6a883c58a26460a506205ce6 |
| oceanbase-ce-libs | 3.1.4   | 10000092022071511.el7 | x86_64 | 6d5437b0cad486b55963f89b8ef3769af7995350 |
| wget              | 1.14    | 18.el7_6.1            | x86_64 | c87f4d3b21d1cb8509fbaadb65eeefc7ca579064 |
+-------------------+---------+-----------------------+--------+------------------------------------------+
Local deploy is empty
Package oceanbase-ce-3.1.4-10000092022071511.el7 is available.
install oceanbase-ce-3.1.4 for local ok
Cluster param config check ok
Open ssh connection ok
Generate observer configuration ok
oceanbase-ce-3.1.4 already installed.
+-------------------------------------------------------------------------------------------+
|                                          Packages                                         |
+--------------+---------+-----------------------+------------------------------------------+
| Repository   | Version | Release               | Md5                                      |
+--------------+---------+-----------------------+------------------------------------------+
| oceanbase-ce | 3.1.4   | 10000092022071511.el7 | c5cd94f4f190317b6a883c58a26460a506205ce6 |
+--------------+---------+-----------------------+------------------------------------------+
Repository integrity check ok
Parameter check ok
Open ssh connection ok
Cluster status check ok
Initializes observer work home ok
Remote oceanbase-ce-3.1.4-10000092022071511.el7-c5cd94f4f190317b6a883c58a26460a506205ce6 repository install ok
Remote oceanbase-ce-3.1.4-10000092022071511.el7-c5cd94f4f190317b6a883c58a26460a506205ce6 repository lib check !!
Try to get lib-repository
Package oceanbase-ce-libs-3.1.4-10000092022071511.el7 is available.
install oceanbase-ce-libs-3.1.4 for local ok
Remote oceanbase-ce-libs-3.1.4-10000092022071511.el7-6d5437b0cad486b55963f89b8ef3769af7995350 repository install ok
Remote oceanbase-ce-3.1.4-10000092022071511.el7-c5cd94f4f190317b6a883c58a26460a506205ce6 repository lib check ok
obcluster deployed
Get local repositories ok
Search plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer ok
[WARN] OBD-1007: (127.0.0.1) The recommended number of open files is 655350 (Current value: %s)
[WARN] (127.0.0.1) clog and data use the same disk (/)
Start observer ok
observer program health check ok
Connect to observer ok
Initialize cluster
Cluster bootstrap ok
Wait for observer init ok
+---------------------------------------------+
|                   observer                  |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.4   | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+
obcluster running
Get local repositories and plugins ok
Open ssh connection ok
Connect to observer ok
Create tenant test ok
deploy success!
boot success!
^C
  • login
[root@oceanbase1 oceanbase-docker]# docker exec -it oceanbase-test ob-mysql sys
login as root@sys
Command is: obclient -h127.1 -uroot@sys -A -Doceanbase -P2881
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221487634
Server version: 5.7.25 OceanBase 3.1.4 (r10000092022071511-b4bfa011ceaef428782dcb65ae89190c40b78c2f) (Built Jul 15 2022 11:45:14)
Copyright (c) 2000, 2022, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient [oceanbase]> select version();
+--------------------+
| version()          |
+--------------------+
| 3.1.4-OceanBase CE |
+--------------------+
1 row in set (0.007 sec)
obclient [oceanbase]>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
算法 程序员 C语言
【C++ 迭代器】深入探讨 C++ 迭代器:标准与自定义容器中的 begin() 和 cbegin()
【C++ 迭代器】深入探讨 C++ 迭代器:标准与自定义容器中的 begin() 和 cbegin()
46 0
|
1月前
|
存储 C++ 容器
set容器一自定义数据类型指定排序规则讲解
set容器一自定义数据类型指定排序规则讲解
15 1
|
7月前
|
网络协议 应用服务中间件 nginx
容器的自定义网络
本实验介绍了如何在容器中创建和使用自定义网络
235 0
|
10月前
|
存储 C++ 容器
<C++>map 容器快速上手|自定义数据类型排序的避坑理解(下)
<C++>map 容器快速上手|自定义数据类型排序的避坑理解
163 0
<C++>map 容器快速上手|自定义数据类型排序的避坑理解(下)
|
10月前
|
存储 C++ 索引
<C++>map 容器快速上手|自定义数据类型排序的避坑理解(上)
<C++>map 容器快速上手|自定义数据类型排序的避坑理解
121 0
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1月前
|
Oracle 关系型数据库 数据库
|
10天前
|
Linux Docker 容器
docker 容器常用命令
docker 容器常用命令
12 0
|
10天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
19 0
|
18天前
|
Kubernetes 网络协议 Docker
Docker 容器的DNS
Docker 容器的DNS
23 1