Loading... <div class="tip inlineBlock info"> 以下容器均使用 Docker version 24.0.2 版本测试使用,这里需要注意一下,高版本的Docker不支持镜像V1版本,不知道怎么操作才可以让它支持,所以推荐使用低版本 </div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-e9b2482574b3222b020aa0049742531784" aria-expanded="true"><div class="accordion-toggle"><span style="">关于修改Docker的镜像拉取地址</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-e9b2482574b3222b020aa0049742531784" class="collapse collapse-content"><p></p> 您可以通过修改daemon配置文件`/etc/docker/daemon.json`来使用加速器 ```bash sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1ojaslt1.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-d4f453a8f0dbd295ea46759f0c53564882" aria-expanded="true"><div class="accordion-toggle"><span style="">关于Docker相关数据路径修改</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-d4f453a8f0dbd295ea46759f0c53564882" class="collapse collapse-content"><p></p> 注意:这样做可能会导致现有的容器和镜像无法正常工作,因为它们的路径指向旧的位置,你需要重新启动这些容器,或者重新创建它们以确保它们的配置指向新的volume路径,推荐在一开始部署Docker时操作 ! ```bash # 1、停止 Docker 服务 sudo systemctl stop docker # 2、将现有的 Docker 数据移动到新的目录 sudo mv /var/lib/docker /new/path/docker # 3、更新 Docker 的配置文件 /etc/docker/daemon.json,添加或修改 data-root 选项 { "data-root": "/new/path/docker" } # 4、重新启动 Docker 服务 sudo systemctl start docker ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-3a9fb183ba564ed6f82f5333df51acbe15" aria-expanded="true"><div class="accordion-toggle"><span style="">关于Docker版本降级的方法</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-3a9fb183ba564ed6f82f5333df51acbe15" class="collapse collapse-content"><p></p> `yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version}` 注:`${version}`指定要降级的版本。 <p></p></div></div></div> # 中间件 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-0c2b371194ce7e41ee245fa952caa1e039" aria-expanded="true"><div class="accordion-toggle"><span style="">Nginx</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-0c2b371194ce7e41ee245fa952caa1e039" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull nginx` **启动容器的方式** ```bash docker run -itd -p 80:80 --restart=always --name Nginx \ -v /docker_data/Nginx_data/html:/usr/share/nginx/html \ -v /docker_data/Nginx_data/conf:/etc/nginx/conf.d \ -v /docker_data/Nginx_data/nginx.conf:/etc/nginx/nginx.conf \ nginx # 参数解释 # -itd: 表示以后台运行的方式启动容器,并分配一个伪终端(pseudo-TTY)和保持 STDIN 打开 # -p 80:80: 将主机的端口映射到容器的端口,这里是将主机的 80 端口映射到容器的 80 端口,用于访问 Nginx 站点页面 # --name Nginx: 为容器指定一个名称,这里是 "Nginx" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # -v /docker_data/Nginx_data/html:/usr/share/nginx/html # 将到容器中的 "/usr/share/nginx/html" 路径映射挂载到 宿主机中的"/docker_data/Nginx_data/html"目录下,这样做的目的是将 Nginx 的 站点页面 路径映射到本地 # -v /docker_data/Nginx_data/conf:/etc/nginx/conf.d # 将到容器中的 "/etc/nginx/conf.d" 路径映射挂载到 宿主机中的"/docker_data/Nginx_data/conf"目录下,这样做的目的是将 Nginx 的 虚拟主机配置文件 路径映射到本地 # -v /docker_data/Nginx_data/nginx.conf:/etc/nginx/nginx.conf # 将到容器中的 "/etc/nginx/nginx.conf" 路径映射挂载到 宿主机中的"/docker_data/Nginx_data/nginx.conf"目录下,这样做的目的是将 Nginx 的 主配置文件 路径映射到本地 ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-e6aa644217c84c3179d48784eb975eac79" aria-expanded="true"><div class="accordion-toggle"><span style="">Tomcat</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-e6aa644217c84c3179d48784eb975eac79" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull tomcat` **启动容器的方式** ```bash docker run -itd -p 8080:8080 --restart=always --name Tomcat \ -v /docker_data/Tomcat_data/webapps:/usr/local/tomcat/webapps/ROOT \ tomcat # 参数解释 # -itd: 表示以后台运行的方式启动容器,并分配一个伪终端(pseudo-TTY)和保持 STDIN 打开 # -p 8080:8080: 将主机的端口映射到容器的端口,这里是将主机的 8080 端口映射到容器的 8080 端口,用于访问 Tomcat 站点页面 # --name Tomcat: 为容器指定一个名称,这里是 "Tomcat" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # -v /docker_data/Tomcat_data/webapps:/usr/local/tomcat/webapps/ROOT # 将到容器中的 "/usr/local/tomcat/webapps/ROOT" 路径映射挂载到 宿主机中的"/docker_data/Tomcat_data/webapps"目录下,这样做的目的是将 Tomcat 的 站点页面 路径映射到本地 ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-d2c49c6850464b3d0aed4b55b2a0b6d651" aria-expanded="true"><div class="accordion-toggle"><span style="">Weblogic</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-d2c49c6850464b3d0aed4b55b2a0b6d651" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull ismaleiva90/weblogic12` **启动容器的方式** ```bash docker run -itd -p 7001:7001 -p 7002:7002 -p 5556:5556 \ --restart=always --name Weblogic \ ismaleiva90/weblogic12 # 参数解释 # -itd: 表示以后台运行的方式启动容器,并分配一个伪终端(pseudo-TTY)和保持 STDIN 打开 # -p 7001:7001: 将主机的端口映射到容器的端口,这里是将主机的 7001 端口映射到容器的 7001 端口,用于访问 Weblogic 控制台页面 # -p 7002:7002: 将主机的端口映射到容器的端口,这里是将主机的 7002 端口映射到容器的 7002 端口,用于访问 Weblogic 站点页面 # -p 5556:5556: 将主机的端口映射到容器的端口,这里是将主机的 5556 端口映射到容器的 5556 端口,用于访问 Weblogic 站点页面 # --name Weblogic: 为容器指定一个名称,这里是 "Weblogic" # --restart=always: 表示当容器退出时,总是重新启动容器 ``` > Web Console > http://localhost:7001/console > User: weblogic > Pass: welcome1 <p></p></div></div></div> # 数据库 ## 关系型数据库 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-cc11dfa24b1be688b5fdf23732624f9537" aria-expanded="true"><div class="accordion-toggle"><span style="">MySQL</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-cc11dfa24b1be688b5fdf23732624f9537" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull mysql:8.0.31` **启动容器的方式** ```bash docker run -d -it -p 3306:3306 --name MySQL --restart=always \ -v /docker_data/MySQL_Data/data:/var/lib/mysql \ -v /docker_data/MySQL_Data/conf:/etc/mysql/conf.d \ --privileged=true \ -e MYSQL_DATABASE='test_db' \ -e MYSQL_ROOT_PASSWORD='abc$123' \ -e MYSQL_USER='testuser' -e MYSQL_PASSWORD='abc$123' \ mysql:8.0.31 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 3306:3306: 将主机的端口映射到容器的端口,这里是将主机的 3306 端口映射到容器的 3306 端口,用于访问 MySQL 数据库 # --name MySQL: 为容器指定一个名称,这里是 "MySQL" # --restart=always: 表示当容器退出时,总是重新启动容器 # --privileged=true: 若不加字段--privileged=true可能会报权限错误 # --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci: 这两个选项参数是改变所有表的默认编码和排序规则以使用 UTF-8 (utf8mb4) # 持久化解释 # -v /docker_data/MySQL_Data/data:/var/lib/mysql # 将到容器中的 "/var/lib/mysql" 路径映射挂载到 宿主机中的"/docker_data/MySQL_Data/data"目录下,这样做的目的是将 MySQL 数据库的数据存储在本地中,以便数据在容器重启时得以保留 # -v /docker_data/MySQL_Data/conf:/etc/mysql/conf.d # 将到容器中的 "/etc/mysql/conf.d" 路径映射挂载到 宿主机中的"/docker_data/MySQL_Data/conf"目录下,这样做的目的是自定义配置文件的路径 # 环境变量解释 # MYSQL_ROOT_PASSWORD【必选】 # 该变量是必需的,指定将为 MySQL 的 root 超级用户帐户设置的密码,MYSQL_RANDOM_ROOT_PASSWORD=yes这个变量也是设置root用户密码的,不同的是他是随机生成一个密码,生成的 root 密码将打印到 stdout ( GENERATED ROOT PASSWORD: .....)。 # MYSQL_USER【可选】 # 这些变量是可选的,结合使用来创建新用户。该用户将被授予变量指定的数据库的超级用户权限。创建用户需要同时设置`MYSQL_PASSWORD`变量。 # 请注意,无需使用此机制来创建 root 超级用户,默认情况下会使用变量指定的密码创建该用户MYSQL_ROOT_PASSWORD # MYSQL_PASSWORD【可选】 # 这些变量是可选的,结合使用来创建新用户并设置该用户的密码。该用户将被授予变量指定的数据库的超级用户权限。创建用户需要这两个变量。 # 请注意,无需使用此机制来创建 root 超级用户,默认情况下会使用变量指定的密码创建该用户MYSQL_ROOT_PASSWORD # MYSQL_DATABASE【可选】 # 该变量是可选的,允许您指定要在映像启动时创建的数据库的名称。如果提供了MYSQL_USER、MYSQL_PASSWORD这两个变量,则该变量设置的用户将被授予对此数据库的超级用户访问权限 ``` **MySQL相关用户远程的配置** ```bash # 允许root用户从任何地址远程操作任何数据库、表 GRANT ALL ON *.* TO 'root'@'%'; # 更改加密规则 ALTER USER 'root'@'%' IDENTIFIED BY 'abc$123' PASSWORD EXPIRE NEVER; # 设置root用户远程授权 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc$123'; # 创建测试数据库 create database test_db character set utf8; # 创建测试用户 CREATE USER 'testuser'@'%' IDENTIFIED BY 'abc$123'; # 测试用户授予所有权限到test_db数据库 GRANT ALL PRIVILEGES ON test_db.* TO 'testuser'@'%'; # 刷新权限 flush privileges; ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-0a94910ca22d33edea33b696bb3e4b7668" aria-expanded="true"><div class="accordion-toggle"><span style="">Oracle 11g</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-0a94910ca22d33edea33b696bb3e4b7668" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g` **启动容器的方式** ```bash docker run -d -it -p 1521:1521 --name Oracle_11g --restart=always \ --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata \ registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 1521:1521: 将主机的端口映射到容器的端口,这里是将主机的 1521 端口映射到容器的 1521 端口,用于访问 Oracle 数据库 # --name Oracle_11g: 为容器指定一个名称,这里是 "Oracle_11g" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata 将名为 "oracle_vol" 的 Docker 卷挂载到容器中的 "/home/oracle/app/oracle/oradata" 路径。这样做的目的是将 Oracle 数据库的数据存储在持久化的卷中,以便数据在容器重启时得以保留 ``` **容器内部配置** ```bash docker exec -it Oracle_11g bash # 进入容器后切换到root用户,设置环境变量(root用户的密码默认是helowin) vi /etc/profile #末尾加上 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=$ORACLE_HOME/bin:$PATH vi /home/oracle/.bashrc #末尾加上 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=$ORACLE_HOME/bin:$PATH # 修改完之后source一下 source /etc/profile source /home/oracle/.bashrc ``` **Oracle相关用户远程的配置** ```bash # 切换回oracle用户,登录oracle修改密码 su - oracle sqlplus /nolog # 以SYSDBA角色连接到数据库,使用SYSDBA角色登录,该角色具有最高级别的数据库权限,允许进行系统级别的管理任务 CONNECT / AS SYSDBA; # 修改系统用户system的登录密码 alter user system identified by 新密码; # 创建一个新用户,并指定其登录密码。 CREATE USER 用户 IDENTIFIED BY 新密码; # 允许新用户连接到数据库。 GRANT CREATE SESSION TO 用户; # 允许用户新用户在数据库中创建新的表 GRANT CREATE TABLE TO 用户; # 设置新用户在表空间USERS上的存储配额为无限制,允许用户存储数据 ALTER USER 用户 QUOTA UNLIMITED ON USERS; ``` **开启远程连接(修改监听)** ```bash vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora LISTENER_HELOWIN = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) HELOWIN = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = helowin) ) ) vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) ) ) # 添加以下内容 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = helowin) (SID_NAME = helowin) ) ) ADR_BASE_LISTENER = /home/oracle/app/oracle # 修改完记得重启容器 docker restart Oracle_11g ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-88f76d1dccb3513ee42a8c60812345a818" aria-expanded="true"><div class="accordion-toggle"><span style="">PostgreSQL</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-88f76d1dccb3513ee42a8c60812345a818" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull postgres` **启动容器的方式** ```bash docker run -d -p 5432:5432 --restart=always --name PostgreSQL \ -e POSTGRES_USER='postgres' \ -e POSTGRES_PASSWORD='abc$123' \ -e POSTGRES_DB='test' \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v /docker_data/Postgres_Data:/var/lib/postgresql/data \ -d postgres # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 5432:5432: 将主机的端口映射到容器的端口,这里是将主机的 5432 端口映射到容器的 5432 端口,用于访问 Postgre 数据库 # --name PostgreSQL: 为容器指定一个名称,这里是 "PostgreSQL" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # -v /docker_data/Postgres_Data:/var/lib/postgresql/data # 将到容器中的 "/var/lib/postgresql/data" 路径映射挂载到 宿主机中的 ”/docker_data/Postgres_Data“目录下,这样做的目的是将 Postgre 数据库的数据存储在本地中,以便数据在容器重启时得以保留 # 环境变量解释 # POSTGRES_PASSWORD【必选】 # 您需要使用此环境变量才能使用 PostgreSQL 映像。它不能为空或未定义。该环境变量设置 PostgreSQL 的超级用户密码。默认超级用户由环境变量定义POSTGRES_USER # POSTGRES_USER【可选】 # 此可选环境变量与设置用户及其密码结合使用。该变量将创建具有超级用户权限的指定用户和同名的数据库。如果未指定,则将使用默认用户"postgres" # POSTGRES_DB【可选】 # 此可选环境变量可用于为首次启动映像时创建的默认数据库定义不同的名称。如果未指定,则将使用POSTGRES_USER设定的值,如果POSTGRES_USER没有设定则默认为"postgres"。 # PGDATA【可选】 # 默认为/var/lib/postgresql/data 如果您使用的数据卷是文件系统挂载点(如 GCE 持久磁盘),或无法被用户 chowned 的远程文件夹postgres(如某些 NFS 挂载),或包含文件夹/文件(例如lost+found),则 Postgresinitdb需要一个子目录在安装点内创建以包含数据。 ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-a48df39595db775e4928901bdbaff06f83" aria-expanded="true"><div class="accordion-toggle"><span style="">达梦</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-a48df39595db775e4928901bdbaff06f83" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull if010/dameng` **启动容器的方式** ```bash docker run -d -p 5236:5236 --restart=always --name DaMengDB --privileged=true \ -e PAGE_SIZE=16 \ -e LD_LIBRARY_PATH=/opt/dmdbms/bin \ -e EXTENT_SIZE=32 \ -e BLANK_PAD_MODE=1 \ -e LOG_SIZE=1024 \ -e UNICODE_FLAG=1 \ -e LENGTH_IN_CHAR=1 \ -e INSTANCE_NAME=dm8_test \ -v /docker_data/DaMeng_Data:/opt/dmdbms/data \ if010/dameng # 参数解释 # *该镜像是本人从官网下载后重新上传Docker Hub的,可放心使用 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 5236:5236: 将主机的端口映射到容器的端口,这里是将主机的 5236 端口映射到容器的 5236 端口,用于访问达梦数据库 # --name DaMengDB: 为容器指定一个名称,这里是 "DaMengDB" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # -v /docker_data/DaMeng_Data:/opt/dmdbms/data # 将到容器中的 "/opt/dmdbms/data" 路径映射挂载到 宿主机中的 ”/docker_data/DaMeng_Data“目录下,这样做的目的是将 达梦 数据库的数据存储在本地中,以便数据在容器重启时得以保留留 ``` > 使用 `-e` 命令参数指定数据库初始化时,需要注意的是 页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (UNICODE_FLAG) 、VARCHAR 类型以字符为单位 (LENGTH_IN_CHAR)、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK)等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。 **DaMeng容器使用相关信息** ```bash # 通过以下命令可以查看 Docker 镜像中数据库初始化的参数,找到 Env 项可以看到在数据库初始化时设置的参数值,包括页大小(PAGE_SIZE)、簇大小(EXTENT_SIZE)、字符集(UNICODE_FLAG)、默认密码(SYSDBA_PWD)等。 docker inspect DaMengDB # 进入容器终端会话 docker exec -it DaMengDB /bin/bash # 进入容器下达梦的位置 cd /opt/dmdbms/bin # 注意 # 1.如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。 # 2.新版本 Docker 镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001(注意全部都是大写)。 ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-afd7cf45d877ca4ac9e48edfd1cee43774" aria-expanded="true"><div class="accordion-toggle"><span style="">人大金仓</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-afd7cf45d877ca4ac9e48edfd1cee43774" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull if010/kingbase:v009r001c001b0025` **启动容器的方式** ```bash docker run -idt -p 5432:54321 --restart=always --name Kingbase --privileged=true \ -e DB_MODE=oracle \ -e NEED_START=yes \ -e DB_USER=kingbase \ -e DB_PASSWORD=abc123 \ -e ENABLE_CI=yes \ -v /docker_data/Kingbase_Data:/home/kingbase/userdata \ if010/kingbase:v009r001c001b0025 /usr/sbin/init # 参数解释 # *该镜像是本人从官网下载后重新上传Docker Hub的,可放心使用,官网提供了两个下载版本,一个是v008r006c008b0014,另一个是v009r001c001b0025,可以拉取对应的tag镜像进行测试使用 # -itd: 表示以后台运行的方式启动容器,并分配一个伪终端(pseudo-TTY)和保持 STDIN 打开 # -p 5432:54321: 将主机的端口映射到容器的端口,这里是将主机的 5432 端口映射到容器的 5432 端口,用于访问 人大金仓 数据库 # --name Kingbase: 为容器指定一个名称,这里是 "Kingbase" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # -v /docker_data/Kingbase_Data:/home/kingbase/userdata # 将到容器中的 "/home/kingbase/userdata" 路径映射挂载到 宿主机中的 ”/docker_data/Kingbase_Data“目录下,这样做的目的是将 人大金仓 数据库的数据存储在本地中,以便数据在容器重启时得以保留留 # 环境变量解释 # DB_USER【可选】 # 此可选环境变量与设置用户及其密码结合使用。如果未指定,则将使用默认用户"system" # DB_PASSWORD【可选】 # 此可选环境变量与设置用户及其密码结合使用。如果未指定,则将使用默认用户"123456" # DB_MODE【可选】 # 此可选环境变量是设置数据库模式,数据库模式支持oracle、pg、mysql # NEED_START【可选】 # 此可选环境变量是设置进入容器后是否启动数据库,yes(默认 启动数据库)/ no(不启动数据库) # ENABLE_CI【可选】 # 此可选环境变量是设置是否需要配置大小写敏感,yes(默认 大小写不敏感)/no 大小写敏感 ``` **Kingbase容器使用相关信息** ```bash # 进入容器终端会话 docker exec -it Kingbase /bin/bash # 启动容器后,相关配置文件会随着data目录一起持久化,包括kingbase.conf、 kingbase_auto.conf、sys_hba.conf等配置文件,在持久化目录中修改配置文件后,使用如下命令使修改生效: /home/kingbase/install/kingbase/bin/sys_ctl reload -D /home/kingbase/userdata/data/ # 使用ksql输入密码进行访问(默认kingbase用户) ksql -Usystem -d test -p54321 # 容器外访问数据库(需要密码) ksql -Ukingbase -d test -p 4321 -h ${container_host_ip} # 数据库启动和停止(默认kingbase用户) sys_ctl -D /home/kingbase/xxxx start/stop ``` <p></p></div></div></div> ## NoSQL 数据库 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-0b2aae8d1eeab813c97c86a3eddd5a3d77" aria-expanded="true"><div class="accordion-toggle"><span style="">Redis</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-0b2aae8d1eeab813c97c86a3eddd5a3d77" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull redis` **Redis配置文件** ```bash vim /docker_data/Redis_Data/conf/redis.conf port 6379 requirepass abc$123 bind 0.0.0.0 protected-mode no daemonize no appendonly yes databases 3 ``` **启动容器的方式** ```bash docker run -d -p 6379:6379 --restart=always --name Redis \ -v /docker_data/Redis_Data/conf:/usr/local/etc/redis \ -v /docker_data/Redis_Data/data:/data \ redis redis-server /usr/local/etc/redis/redis.conf # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 6379:6379: 将主机的端口映射到容器的端口,这里是将主机的 6379 端口映射到容器的 6379 端口,用于访问 Redis 数据库 # --name Redis: 为容器指定一个名称,这里是 "Redis" # --restart=always: 表示当容器退出时,总是重新启动容器 # 持久化解释 # -v /docker_data/Redis_Data/conf:/usr/local/etc/redis # 将到容器中的 "/usr/local/etc/redis" 路径映射挂载到 宿主机中的"/docker_data/Redis_Data/conf"目录下,这样子做的目的是可以自定义Redis的配置文件 # -v /docker_data/Redis_Data/data:/data # 将到容器中的 "/data" 路径映射挂载到 宿主机中的"/docker_data/Redis_Data/data"目录下,这样做的目的是将 Redis 数据库的数据存储在本地中,以便数据在容器重启时得以保留 # 关于启动命令 # redis-server /usr/local/etc/redis/redis.conf # 容器内部执行该命令是为了按照我们自定义的配置文件启动,这个不是必须的!!! ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-560d28b66190c0bc5653069e1385a6ee15" aria-expanded="true"><div class="accordion-toggle"><span style="">MongoDB</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-560d28b66190c0bc5653069e1385a6ee15" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull mongo` **MongoDB配置文件** ```bash vim /docker_data/MongoDB_Data/conf/mongod.conf storage: dbPath: /data/db journal: enabled: true # engine: # wiredTiger: systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 processManagement: timeZoneInfo: /usr/share/zoneinfo #security: #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp: ``` **启动容器的方式** ```bash docker run -d -p 27017:27017 --restart=always --name MongoDB \ -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ -e MONGO_INITDB_ROOT_PASSWORD=abc123 \ -v /docker_data/MongoDB_Data/data:/data/db \ -v /docker_data/MongoDB_Data/conf:/etc/mongo \ mongo --config /etc/mongo/mongod.conf --wiredTigerCacheSizeGB 1.5 # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 27017:27017: 将主机的端口映射到容器的端口,这里是将主机的 27017 端口映射到容器的 27017 端口,用于访问 MongoDB 数据库 # --name MongoDB: 为容器指定一个名称,这里是 "MongoDB" # --restart=always: 表示当容器退出时,总是重新启动容器 # --config /etc/mongo/mongod.conf: 指定配置文件路径 (这个不是必须的,设置此选项之前需准备好mongod.conf文件映射到Docker内部) # --wiredTigerCacheSizeGB 1.5: 设置WiredTiger缓存大小限制为1.5G # 持久化解释 # -v /docker_data/MongoDB_Data/conf:/etc/mongo # 将到容器中的 "/etc/mongo" 路径映射挂载到 宿主机中的"/docker_data/MongoDB_Data/conf"目录下,这样子做的目的是可以自定义MongoDB的配置文件 # -v /docker_data/Redis_Data/data:/data # 将到容器中的 "/data/db" 路径映射挂载到 宿主机中的"/docker_data/MongoDB_Data/data"目录下,这样做的目的是将 MongoDB 数据库的数据存储在本地中,以便数据在容器重启时得以保留 # 环境变量解释 # MONGO_INITDB_ROOT_USERNAME【可选】 # 该变量是创建管理员用户,该用户是在admin身份验证数据库中创建的,并被赋予角色root,这是一个"超级用户"角色。 # MONGO_INITDB_ROOT_PASSWORD【可选】 # 该变量是为创建管理员用户设置密码,需配合MONGO_INITDB_ROOT_USERNAME变量参数使用 ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-5fe0d70322623d243febd9db33e1d744100" aria-expanded="true"><div class="accordion-toggle"><span style="">Memcache</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-5fe0d70322623d243febd9db33e1d744100" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull memcached` **启动容器的方式** ```bash docker run -d -p 11211:11211 --name Memcached --restart=always memcached memcached -m 64 # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 11211:11211: 将主机的端口映射到容器的端口,这里是将主机的 11211 端口映射到容器的 11211 端口,用于访问 Memcached 消息队列的web管理界面 # --name Memcached: 为容器指定一个名称,这里是 "Memcached" # --restart=always: 表示当容器退出时,总是重新启动容器 # 命令执行解释 # memcached -m 64 # 这会将 Memcached 服务器设置为使用 64 MB 进行存储 ``` <p></p></div></div></div> # 消息队列 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-fa3e3bc0e9c61abd2cb863ad6849e8a986" aria-expanded="true"><div class="accordion-toggle"><span style="">RabbitMQ</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-fa3e3bc0e9c61abd2cb863ad6849e8a986" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull rabbitmq` 启动容器的方式 ```bash docker run -itd -p 15672:15672 --name RabbitMQ \ --hostname rmq-test.if010.com \ -e RABBITMQ_DEFAULT_VHOST=rmq-test.if010.com \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=abc123 \ rabbitmq:3-management # 参数解释 # -itd: 表示以后台运行的方式启动容器,并分配一个伪终端(pseudo-TTY)和保持 STDIN 打开 # -p 15672:15672: 将主机的端口映射到容器的端口,这里是将主机的 15672 端口映射到容器的 15672 端口,用于访问 RabbitMQ 控制台页面,内部除了该端口外,还开了4369/tcp、5671-5672/tcp、15671/tcp、15691-15692/tcp、25672/tcp # --name RabbitMQ: 为容器指定一个名称,这里是 "RabbitMQ" # --restart=always: 表示当容器退出时,总是重新启动容器 # --hostname: 设置容器主机名称 # 环境变量解释 # RABBITMQ_DEFAULT_VHOST【可选】 该变量是可选的,是设置 RabbitMQ 的主机名称 # RABBITMQ_DEFAULT_USER【可选】 该变量是可选的,是设置 RabbitMQ 的账户 # RABBITMQ_DEFAULT_PASS【可选】 该变量是可选的,是设置 RabbitMQ 的密码 ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-1c051fcf1ac03bee2f3f20145354a26713" aria-expanded="true"><div class="accordion-toggle"><span style="">Kafka</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-1c051fcf1ac03bee2f3f20145354a26713" class="collapse collapse-content"><p></p> <p></p></div></div></div> # 其他 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-468ce35725c589063735be8d54077d1675" aria-expanded="true"><div class="accordion-toggle"><span style="">Portainer (Docker Web 管理工具)</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-468ce35725c589063735be8d54077d1675" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull portainer/portainer-ee` **启动容器的方式** ```bash docker run -d -p 8000:8000 -p 9443:9443 --name Portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /docker_data/Portainer_data:/data \ portainer/portainer-ee:latest ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-f75c5a3d5b5bded89843043e62ac960360" aria-expanded="true"><div class="accordion-toggle"><span style="">Gitlab</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-f75c5a3d5b5bded89843043e62ac960360" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull gitlab/gitlab-ce` **启动容器的方式** ```bash docker run -d --name GitLab \ --hostname gitlab.if010.com \ --publish 8443:443 --publish 8081:80 -p 2222:22 \ --restart always \ --volume /docker_data/GitLab_data/config:/etc/gitlab \ --volume /docker_data/GitLab_data/logs:/var/log/gitlab \ --volume /docker_data/GitLab_data/data:/var/opt/gitlab \ -v /etc/localtime:/etc/localtime \ --shm-size 256m \ gitlab/gitlab-ce:latest ``` <p></p></div></div></div> --- <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-ae2d24f5ac6128062d2f2ba03af0afde80" aria-expanded="true"><div class="accordion-toggle"><span style="">Guacd (远程协议工具)</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-ae2d24f5ac6128062d2f2ba03af0afde80" class="collapse collapse-content"><p></p> **镜像拉取:**`docker pull guacamole/guacd` **启动容器的方式** ```bash docker run -d -p 4822:4822 --privileged=true --restart=always --name Guacd \ -e LANG=zh_CN.UTF-8 \ -v /docker_data/Guacd/rdp-rec:/rdp-rec \ -v /docker_data/Guacd/rdp-file:/rdp-file \ guacamole/guacd # 参数解释 # -d: 表示以后台运行的方式启动容器 # -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开 # -p 4822:4822: 将主机的端口映射到容器的端口,这里是将主机的 4822 端口映射到容器的 4822 端口,用于访问 Guacd远程的API接口 # --name Guacd: 为容器指定一个名称,这里是 "Guacd" # --restart=always: 表示当容器退出时,总是重新启动容器 # --privileged=true: 若不加字段--privileged=true可能会报权限错误 # 持久化解释 # -v /docker_data/Guacd/rdp-rec:/rdp-rec # 代码内固定配置,guacd服务rdp录屏文件存放路径 # -v /docker_data/Guacd/rdp-file:/rdp-file # 代码内固定配置,guacd服务rdp远程磁盘文件存放路 # 环境变量解释 # LANG # 设置字符编码格式 ``` <p></p></div></div></div> 最后修改:2024 年 05 月 08 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 -