个人性质的网站备案容易查,wordpress 首页描述,如何用两台电脑做服务器建网站,青岛建设英文网站建设以下容器均使用 Docker version 24.0.2 版本测试使用#xff0c;这里需要注意一下#xff0c;高版本的Docker不支持镜像V1版本#xff0c;不知道怎么操作才可以让它支持#xff0c;所以推荐使用低版本 如果觉得不直观#xff0c;或者觉得有点乱#xff0c;可以访问以下网… 以下容器均使用 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 --setoptobsoletes0 -y docker-ce-${version} docker-ce-selinux-${version}
注${version}指定要降级的版本。
中间件
Nginx
镜像拉取docker pull nginx
启动容器的方式
docker run -itd -p 80:80 --restartalways --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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# -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 --restartalways --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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# -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 \
--restartalways --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
# --restartalways: 表示当容器退出时总是重新启动容器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 --restartalways \
-v /docker_data/MySQL_Data/data:/var/lib/mysql \
-v /docker_data/MySQL_Data/conf:/etc/mysql/conf.d \
--privilegedtrue \
-e MYSQL_DATABASEtest_db \
-e MYSQL_ROOT_PASSWORDabc$123 \
-e MYSQL_USERtestuser -e MYSQL_PASSWORDabc$123 \
mysql:8.0.31 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci# 参数解释
# -d: 表示以后台运行的方式启动容器
# -it: 分别表示分配一个伪终端pseudo-TTY并保持 STDIN 打开
# -p 3306:3306: 将主机的端口映射到容器的端口这里是将主机的 3306 端口映射到容器的 3306 端口用于访问 MySQL 数据库
# --name MySQL: 为容器指定一个名称这里是 MySQL
# --restartalways: 表示当容器退出时总是重新启动容器
# --privilegedtrue: 若不加字段--privilegedtrue可能会报权限错误
# --character-set-serverutf8mb4 --collation-serverutf8mb4_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_PASSWORDyes这个变量也是设置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 --restartalways \
--mount sourceoracle_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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# --mount sourceoracle_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_SIDhelowin
export PATH$ORACLE_HOME/bin:$PATHvi /home/oracle/.bashrc #末尾加上
export ORACLE_HOME/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SIDhelowin
export PATH$ORACLE_HOME/bin:$PATH# 修改完之后source一下
source /etc/profile
source /home/oracle/.bashrcOracle相关用户远程的配置
# 切换回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_11gPostgreSQL
镜像拉取docker pull postgres
启动容器的方式
docker run -d -p 5432:5432 --restartalways --name PostgreSQL \
-e POSTGRES_USERpostgres \
-e POSTGRES_PASSWORDabc$123 \
-e POSTGRES_DBtest \
-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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# -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 挂载或包含文件夹/文件例如lostfound则 Postgresinitdb需要一个子目录在安装点内创建以包含数据。达梦
镜像拉取docker pull if010/dameng
启动容器的方式
docker run -d -p 5236:5236 --restartalways --name DaMengDB --privilegedtrue \
-e PAGE_SIZE16 \
-e LD_LIBRARY_PATH/opt/dmdbms/bin \
-e EXTENT_SIZE32 \
-e BLANK_PAD_MODE1 \
-e LOG_SIZE1024 \
-e UNICODE_FLAG1 \
-e LENGTH_IN_CHAR1 \
-e INSTANCE_NAMEdm8_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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# -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 --restartalways --name Kingbase --privilegedtrue \
-e DB_MODEoracle \
-e NEED_STARTyes \
-e DB_USERkingbase \
-e DB_PASSWORDabc123 \
-e ENABLE_CIyes \
-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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# -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/stopNoSQL 数据库
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 --restartalways --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
# --restartalways: 表示当容器退出时总是重新启动容器# 持久化解释
# -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 --restartalways --name MongoDB \
-e MONGO_INITDB_ROOT_USERNAMEmongoadmin \
-e MONGO_INITDB_ROOT_PASSWORDabc123 \
-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
# --restartalways: 表示当容器退出时总是重新启动容器
# --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 --restartalways memcached memcached -m 64# 参数解释
# -d: 表示以后台运行的方式启动容器
# -it: 分别表示分配一个伪终端pseudo-TTY并保持 STDIN 打开
# -p 11211:11211: 将主机的端口映射到容器的端口这里是将主机的 11211 端口映射到容器的 11211 端口用于访问 Memcached 消息队列的web管理界面
# --name Memcached: 为容器指定一个名称这里是 Memcached
# --restartalways: 表示当容器退出时总是重新启动容器# 命令执行解释
# 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_VHOSTrmq-test.if010.com \
-e RABBITMQ_DEFAULT_USERadmin \
-e RABBITMQ_DEFAULT_PASSabc123 \
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
# --restartalways: 表示当容器退出时总是重新启动容器
# --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 \
--restartalways \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /docker_data/Portainer_data:/data \
portainer/portainer-ee:latestGitlab
镜像拉取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:latestGuacd (远程协议工具)
镜像拉取docker pull guacamole/guacd
启动容器的方式
docker run -d -p 4822:4822 --privilegedtrue --restartalways --name Guacd \
-e LANGzh_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
# --restartalways: 表示当容器退出时总是重新启动容器
# --privilegedtrue: 若不加字段--privilegedtrue可能会报权限错误# 持久化解释
# -v /docker_data/Guacd/rdp-rec:/rdp-rec
# 代码内固定配置guacd服务rdp录屏文件存放路径
# -v /docker_data/Guacd/rdp-file:/rdp-file
# 代码内固定配置guacd服务rdp远程磁盘文件存放路# 环境变量解释
# LANG
# 设置字符编码格式