Docker快速启动清单
以下容器均使用 Docker version 24.0.2 版本测试使用,这里需要注意一下,高版本的Docker不支持镜像V1版本,不知道怎么操作才可以让它支持,所以推荐使用低版本
如果觉得不直观,或者觉得有点乱,可以访问以下网址,可能会直观点
博客网址
Quick Reference网址
关于修改Docker的镜像拉取地址
您可以通过修改daemon配置文件/etc/docker/daemon.json
来使用加速器
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
关于Docker相关数据路径修改
注意:这样做可能会导致现有的容器和镜像无法正常工作,因为它们的路径指向旧的位置,你需要重新启动这些容器,或者重新创建它们以确保它们的配置指向新的volume路径,推荐在一开始部署Docker时操作 !
# 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
关于Docker版本降级的方法
yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version}
注:${version}
指定要降级的版本。
中间件
Nginx
镜像拉取:docker pull nginx
启动容器的方式
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 的 主配置文件 路径映射到本地
Tomcat
镜像拉取:docker pull tomcat
启动容器的方式
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 的 站点页面 路径映射到本地
Weblogic
镜像拉取:docker pull ismaleiva90/weblogic12
启动容器的方式
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
数据库
关系型数据库
MySQL
镜像拉取:docker pull mysql:8.0.31
启动容器的方式
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相关用户远程的配置
# 允许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;
Oracle 11g
镜像拉取:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
启动容器的方式
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 数据库的数据存储在持久化的卷中,以便数据在容器重启时得以保留
容器内部配置
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:$PATHvi /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相关用户远程的配置
# 切换回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;
开启远程连接(修改监听)
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
PostgreSQL
镜像拉取:docker pull postgres
启动容器的方式
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需要一个子目录在安装点内创建以包含数据。
达梦
镜像拉取:docker pull if010/dameng
启动容器的方式
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容器使用相关信息
# 通过以下命令可以查看 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(注意全部都是大写)。
人大金仓
镜像拉取:docker pull if010/kingbase:v009r001c001b0025
启动容器的方式
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容器使用相关信息
# 进入容器终端会话
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
NoSQL 数据库
Redis
镜像拉取:docker pull redis
Redis配置文件
vim /docker_data/Redis_Data/conf/redis.confport 6379
requirepass abc$123
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
databases 3
启动容器的方式
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
# 容器内部执行该命令是为了按照我们自定义的配置文件启动,这个不是必须的!!!
MongoDB
镜像拉取:docker pull mongo
MongoDB配置文件
vim /docker_data/MongoDB_Data/conf/mongod.confstorage:dbPath: /data/dbjournal:enabled: true
# engine:
# wiredTiger:systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.lognet:port: 27017bindIp: 0.0.0.0processManagement:timeZoneInfo: /usr/share/zoneinfo#security:#operationProfiling:#replication:#sharding:## Enterprise-Only Options:#auditLog:#snmp:
启动容器的方式
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变量参数使用
Memcache
镜像拉取:docker pull memcached
启动容器的方式
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 进行存储
消息队列
RabbitMQ
镜像拉取:docker pull rabbitmq
启动容器的方式
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 的密码
其他
Portainer (Docker Web 管理工具)
镜像拉取:docker pull portainer/portainer-ee
启动容器的方式
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
Gitlab
镜像拉取:docker pull gitlab/gitlab-ce
启动容器的方式
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
Guacd (远程协议工具)
镜像拉取:docker pull guacamole/guacd
启动容器的方式
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
# 设置字符编码格式
相关文章:
Docker快速启动清单
以下容器均使用 Docker version 24.0.2 版本测试使用,这里需要注意一下,高版本的Docker不支持镜像V1版本,不知道怎么操作才可以让它支持,所以推荐使用低版本 如果觉得不直观,或者觉得有点乱,可以访问以下网…...
京东手势验证码-YOLO姿态识别+Bézier curve轨迹拟合
这次给老铁们带来的是京东手势验证码的识别。 目标网站:https://plogin.m.jd.com/mreg/index 验证码如下图: 当第一眼看到这个验证码的时候,就头大了,这玩意咋识别??? 静下心来细想后的一个方案…...
亚马逊是如何铺设多个IP账号实现销量大卖的?
一、针对亚马逊平台机制,如何转变思路? 众所周知,一个亚马逊卖家只能够开一个账号,一家店铺,这是亚马逊平台明确规定的。平台如此严格限定,为的就是保护卖家,防止卖家重复铺货销售相同的产品&a…...
linux学习笔记——硬盘原理以及linux中的sector与block
在计算机硬盘中,最小的存储单位叫做扇区sector,0.5kb,多个连续扇区组合在一起形成了块block,最小的块包含8个扇区,4kb 我们可以在linux中印证 创建一个新的文件2.txt,查看文件大小为0k 在文件中添加字符后…...
【OceanBase诊断调优】—— 磁盘性能问题导致卡合并和磁盘写入拒绝排查
适用版本 OceanBase 数据库 V3.x、V4.x 版本。 问题现象 OceanBase 集群合并一直未完成,同时 tsar 和 iostat 显示从凌晨 2:30 开始磁盘使用率一直是 100%。怀疑合并导致 IO 上升,IO 可能存在问题,observer.log 的确有大量报错 disk is hu…...
使用unreal engine5.3.2创建c++第一人称游戏
UE5系列文章目录 文章目录 UE5系列文章目录前言一、NuGet 简介二、解决方法: 前言 为了使用unreal engine5.3.2创建c第一人称游戏,今天安装了Visual Studio 2022专业版。在ue5中创建c工程,结果编译器报错: 严重性 代码 说明 项目…...
关系型数据库的一种自动测评方式
关系型数据库在如今已经是一门比较常用以及重要的技术,现在的大部分应用程序系统都构建于关系型数据库系统之上,数据库技能也是每个IT从业人员的必备技能之一,因此一些高校、培训学校等机构都把数据库课程作为必修课程之一。这就牵涉到考核的问题了,对于学生是否掌握该门技…...
速盾:服务器cdn加速的具体实现方式?
CDN(Content Delivery Network)即内容分发网络,是一种通过分布在各个地理位置的边缘节点服务器来缓存和传输网络内容的技术。CDN的主要目标是提高用户访问网站的速度和性能,并减轻源服务器的负载。 CDN加速是通过以下几个步骤来实…...
【QT教程】QT6音视频处理权威指南 QT音视频
QT6音视频处理权威指南 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费…...
cmd输入mysql -u root -p无法启动
问题分析:cmd输入mysql -u root -p无法启动 解决方法:配置系统环境变量 1.找到mysql安装文件下的bin文件:(复制改文件地址,如下图所示) 2.电脑桌面下方直接搜索环境变量并进入,如下图 3.点击环境变量&a…...
word 毕业论文格式调整
添加页眉页脚 页眉 首先在页面上端页眉区域双击,即可出现“页眉和页脚”设置页面: 页眉左右两端对齐 如果想要页眉页脚左右两端对齐,可以选择添加三栏页眉,然后将中间那一栏删除,即可自动实现左右两端对齐&#x…...
移动UI瓷片区能有多漂亮?要多漂亮就多漂亮。
移动UI的瓷片区(Tile area)是指移动应用或移动网页的界面布局中的一个区域,通常用于展示独立的信息块或功能块,每个块都是一个可点击的图标或瓷片,用于快速访问相关功能或查看相关信息。 瓷片区的设计灵感来源于Window…...
SpringCloud Config 分布式配置中心
SpringCloud Config 分布式配置中心 概述分布式系统面临的——配置问题ConfigServer的作用 Config服务端配置Config客户端配置 可以有一个非常轻量级的集中式管理来协调这些服务 概述 分布式系统面临的——配置问题 微服务意味着要将单体应用中的业务拆分成一个个字服务&…...
Java入门基础学习笔记2——JDK的选择下载安装
搭建Java的开发环境: Java的产品叫JDK(Java Development Kit: Java开发者工具包),必须安装JDK才能使用Java。 JDK的发展史: LTS:Long-term Support:长期支持版。指的Java会对这些版…...
基于FPGA的去雾算法
去雾算法的原理是基于图像去模糊的原理,通过对图像中的散射光进行估计和去除来消除图像中的雾霾效果。 去雾算法通常分为以下几个步骤: 1. 导引滤波:首先使用导引滤波器对图像进行滤波,目的是估计图像中散射光的强度。导引滤波器…...
专题六_模拟(2)
目录 6. Z 字形变换 解析 题解 38. 外观数列 解析 题解 6. Z 字形变换 6. Z 字形变换 - 力扣(LeetCode) 解析 题解 class Solution { public:string convert(string s, int numRows) {// 42.专题六_模拟_N 字形变换_C// 处理边界情况if (numRows …...
[qnx] 通过zcu104 SD卡更新qnx镜像的步骤
0. 概述 本文演示如果给Xlinx zcu104开发板刷入自定义的qnx镜像 1.将拨码开关设置为SD卡启动 如下图所示,将1拨到On,2,3,4拨到Off,即为通过SD启动。 2.准备SD卡中的内容 首先需要将SD格式化为FAT32的(如果已经是FAT32格式,则…...
论文AIGC检测让毕业生头疼,如何有效降低AI查重率!
在准备毕业论文的过程中,不知道大家有没有跟我一样,遇到这样棘手的问题。我们都知道在撰写完论文后,进行论文查重是我们必不可少的一步。于是,我拿着论文进行了论文重复率的检测,发现重复率只有2.8%,看到这…...
FineBI学习:K线图
效果图 底表结构:日期、股票代码、股票名称、开盘价、收盘价、最高价、最低价 步骤: 横轴:日期 纵轴:开盘价、最低价 选择【自定义图表】,或【瀑布图】 新建字段:价差(收盘-开盘…...
Chronos:学习时间序列的大语言模型(代码解析)
前言 《Chronos: Learning the Language of Time Series》原文地址,Github开源代码地址Chronos:学习时间序列的大语言模型(论文解读)CSDN地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习…...
云南区块链商户平台优化开发
背景 云南区块链商户平台是全省统一区块链服务平台。依托于云南省发改委、阿里云及蚂蚁区块链的国内首个省级区块链平台——云南省区块链平台同步上线,助力数字云南整体升级。 网页版并不适合妈妈那辈人使用,没有记忆功能,于是打算自己开发…...
深圳六西格玛培训:引领职场“薪”途无限
在追求职业发展和薪资增长的道路上,不断学习和提升自我是至关重要的。深圳,这座充满活力和创新精神的城市,为职场人士提供了众多学习和提升的机会。其中,六西格玛培训以其独特的价值,吸引了众多职场人士的目光。张驰咨…...
Spark云计算平台Databricks使用,创建workspace和Compute计算集群(Spark集群)
Databricks,是属于 Spark 的商业化公司,由美国加州大学伯克利 AMP 实验室的 Spark 大数据处理系统多位创始人联合创立。Databricks 致力于提供基于 Spark 的云服务,可用于数据集成,数据管道等任务。 1 创建workspace 点击创建wor…...
银河麒麟服务器系统audit服务组件升级、进程彻底关闭介绍
银河麒麟服务器系统audit服务组件升级、进程彻底关闭介绍 一 系统环境二 组件升级2.1 联网升级audit2.1.1 配置外网源(默认配置如下,不用修改)2.1.2 通过dnf命令进行升级(未指定版本的话会升级到最新se.12版本,建议升级…...
设计模式——装饰者模式(Decorator)
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者模式相比生成子类更为灵活。在装饰者模式中,一个装饰类会包装一个对象(…...
力扣:406. 根据身高重建队列
406. 根据身高重建队列 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构…...
Docker 怎么将映射出的路径设置为非root用户权限
在Docker中,容器的根文件系统默认是由root用户拥有的。如果想要在映射到宿主机的路径时设置为非root用户权限,可以通过以下几种方式来实现: 1. 使用具有特定UID和GID的非root用户运行容器: 在运行容器时,你可以使用-u…...
Linux——进程的优先级、ACL
一、系统性能调优 Redhat7和centos7默认安装并启动了tuned服务 实验 [rootuser ~]# tuned-adm list //查看所有的调优方案 [rootuser ~]# tuned-adm recommend // 查看推荐的调优方案 virtual-guest 适用于作为虚拟机客户机运行的设备࿰…...
【C++】STL-list模拟实现
目录 1、本次需要实现的3个类即接口总览 2、list的模拟实现 2.1 链表结点的设置以及初始化 2.2 链表的迭代器 2.3 容量接口及默认成员函数 1、本次需要实现的3个类即接口总览 #pragma once #include<iostream> #include<assert.h> using namespace std; templ…...
Java 7大排序
🐵本篇文章将对数据结构中7大排序的知识进行讲解 一、插入排序 有一组待排序的数据array,以升序为例,从第二个数据开始(用tmp表示)依次遍历整组数据,每遍历到一个数据都再从tmp的前一个数据开始࿰…...
建设银行网站收费吗/郴州网站建设网络推广渠道
Kali Linux中暂时不能解析域名环境:kali linux这个问题是再用apt install命令安装软件时发现的用ping www.xxxxxxxx.com 再次确认无法解析域名参考:https://www.cnblogs.com/zylq-blog/p/6654586.html kali域名解析错误解决http://ddrv.cn/a/177111 …...
辽宁城市建设网站/百度排名优化
Autotools包含一系列工具:automake、autoconf、autoscan、aclocal等工具组成,使用这组工具可以生成一个完整项目的Makefile。还是看流程图一目了然: 1、准备源文件 以最简单的helloworld为例: bookUbuntu:~/work/Autotools$ l…...
青海公司网站建设哪家好/网站测速工具
1、大致介绍: >_<" 大致执行顺序是:ipl10.nas->asmhead.nas->bootpack.c PS: 这里bootpack.c要调用graphic.c、dsctbl.c、fifo.c、int.c实现功能,其中有些函数还必须汇编来写,所以单独写一个汇编文件naskfunc.na…...
高端网站设计新感觉建站/内容营销成功案例
python中捕获键盘操作一共有两种方法 第一种方法: 使用pygame中event方法 使用方式如下:使用键盘右键为例 if event.type pygame.KEYDOWN and event.key pygame.K_RIGHT: print(‘向右移动) 第二种方法: 使用pygame中的key模块 1,…...
网站建设的培训/东莞seo建站如何推广
前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 文件权限一. 查看文件的权限与归属1.1 介绍1.2 修改文件的权限——chmod命令1.3 修改文件的归属——chown命令二.文件的特殊权限2…...
设计团队网站/全网seo
Python 是一种美丽的语言,它简单易用却非常强大。但你真的会用 Python 的所有功能吗?任何编程语言的高级特征通常都是通过大量的使用经验才发现的。比如你在编写一个复杂的项目,并在 stackoverflow 上寻找某个问题的答案。然后你突然发现了一个非常优雅…...