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和机器学习…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
