安装应用 Docker和Docker Compose¶
通过 Docker 化的 OTOBO 部署,您可以在几分钟内启动并运行您的个人 OTOBO 实例。在提供的 Docker 镜像集合中,已经包含了 OTOBO 的所有依赖项。
- 服务 db:已将 MariaDB 设置为默认数据库。
- 服务 elastic:为 OTOBO 强力搜索设置了 Elasticsearch。
- 服务 redis:已启用 Redis 进行快速缓存。
- 网络*服务:Gazelle 用作快速 Perl 网络服务器。
- 服务 nginx:Nginx 用作支持 HTTPS 的可选反向代理。
我们认为,这种设置是安装 OTOBO 的理想环境。
需求¶
经过测试的所需软件最低版本,请参考下面列表:
- Docker 19.03.08
- DockerCompose 1.25.0
- Git 2.25.1
Note
要得到所需的Ubuntu18.04最低版本,请按照https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04和https://wwwdigitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04中的说明进行操作。
可以使用标准系统工具来安装git,Docker和Docker Compose。这是在Ubuntu 20.04上安装的示例:
root> apt-get install git docker docker-compose curl
root> systemctl enable docker
请查看Git和Docker文档,得到更多步骤的说明。
安装¶
下面的介绍是在假设所有需要的系统都已经安装,并且你已经有了一个工作的Docker环境。我们假设用户**root**被用来和Docker互动,请注意针对一个生产环境,需要有一个专用用户作为Docker管理员。
1. Clone the otobo-docker repo¶
Docker映像最终将从https://hub.docker.com获取,但是需要从otobo-docker Github存储库中克隆一些设置和命令文件。请确保使用这些文件的合适版本,其中git标签必须对应OTOBO的版本,这里以OTOBO 10.0.4为例。
Note
克隆副本的位置并不重要,在介绍中我们选择 */opt/otobo-docker*作为工作目录。
docker_admin> cd /opt
docker_admin> git clone https://github.com/RotherOSS/otobo-docker.git --branch <BRANCH> --single-branch
docker_admin> ls otobo-docker # just a sanity check, README.md should exist
2. Create an initial .env file¶
Docker Compose 配置文件 .env 是您管理 OTOBO 安装的主要界面。首先必须创建该文件,然后自行调整。为了简化这项工作,有几个示例文件可以作为起点。哪个示例文件最合适取决于您的使用情况。在大多数情况下,根据是否支持 TLS,可以在 .docker_compose_env_http 和 .docker_compose_env_https 之间做出选择。其他文件适用于更特殊的情况。
- .docker_compose_env_http
- OTOBO 网络应用程序提供 HTTP。
- .docker_compose_env_https
- OTOBO 网络应用程序通过运行 Nginx 作为反向代理网络服务器来提供 HTTPS。
- .docker_compose_env_https_custom_nginx
- 与 .docker_compose_env_https 类似,但支持自定义 Nginx 配置。
- .docker_compose_env_https_kerberos
- 与 .docker_compose_env_https 类似,但提供了单点登录的设置示例。请注意,Kerberos 支持仍处于**实验阶段。
- .docker_compose_env_http_selenium 和 .docker_compose_env_https_selenium
- 这些仅在激活 Selenium 测试时用于开发。
Note
使用 ls -a
列出隐藏的样本文件。
默认情况下,OTOBO在标准端口上提供, HTTPS的端口443和端口80。激活HTTPS后,OTOBO Web应用程序实际上始终使用HTTP运行。 HTTPS的支持通过另外的反向代理来实现,该代理通过nginx服务实现。
我们假定以下命令都支持HTTPS。
docker_admin> cd /opt/otobo-docker
docker_admin> cp -p .docker_compose_env_https .env # or .docker_compose_env_http for HTTP
3. Configure the password for the database admin user¶
调整*.env*文件中的以下数值:
OTOBO_DB_ROOT_PASSWORD
``OTOBO_DB_ROOT_PASSWORD``数据库管理员的密码可以自由选择,数据库管理员创建了数据库用户**otobo**和数据库模式**otobo**。
4. Set up a volume with SSL configuration for the nginx webproxy (optional)¶
如果OTOBO只能通过HTTP进行,这个步骤就可以跳过。
nginx需要SSL加密的证书和私钥。
Note
为了进行测试和开发,可以使用自签名证书。在一般情况下,必须使用注册证书。
参考<https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-18-04>`中的案例,如何创建自己签名的证书。
Note
在nginx中指定一个带有证书的CA链,需要将这个带有实际证书的CA链文件考入一个文件中去。
证书和私钥存储在一个卷中,以便以后Nginx使用,在任何情况下,都需要手动生成该卷,并且需要将证书和密钥复制到该卷:
docker_admin> docker volume create otobo_nginx_ssl
docker_admin> otobo_nginx_ssl_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_ssl)
docker_admin> echo $otobo_nginx_ssl_mp # just a sanity check
docker_admin> cp /PathToYourSSLCert/ssl-cert.crt /PathToYourSSLCert/ssl-key.key $otobo_nginx_ssl_mp
需要在我们新创建的* .env *文件中设置复制文件的名称,例如。
OTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/ssl-cert.crt``和`OTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/ssl-key.key`。
请仅调整文件名,因为路径* / etc / nginx / ssl / *在Docker映像中是硬编码的。
安装应用 Docker和Docker Compose¶
现在我们使用``docker-compose``启动Docker容器。默认情况下,将从https://hub.docker.com/u/rotheross获取Docker映像。
docker_admin> docker-compose up --detach
在使用HTTP的情况下,要验证六个或五个服务是否正在实际运行,请输入:
docker_admin> docker-compose ps
docker_admin> docker volume ls
6. Install and start OTOBO¶
在http://yourIPorFQDN/otobo/installer.pl中运行OTOBO安装程序。
Note
请使用新的MySQL数据库在安装程序中配置OTOBO。作为MySQL数据库的根密码,请使用您在* .env *文件的变量``OTOBO_DB_ROOT_PASSWORD''中配置的密码。请保持MySQL主机名的``db''值不变。
与OTOBO玩得开心吧!
Note
要在运行中的容器内切换到 OTOBO 目录,并像往常一样在命令行上工作,可以使用以下 Docker 命令:docker-compose exec web bash``。
附加技术信息¶
本节对隐含的内容提供了更多的技术见解。
Docker容器列表¶
- 容器otobo_web_1
- 内部端口5000上的OTOBO Web服务器。
- 容器otobo_daemon_1
- OTOBO守护程序。 OTOBO守护程序已启动并定期检查。
- 容器otobo_db_1
- 在内部端口3306上运行数据库MariaDB。
- 容器otobo_elastic_1
- 在内部端口9200和9300上运行Elasticsearch。
- 容器otobo_redis_1
- 将Redis作为缓存服务运行。
- 可选容器otobo_nginx_1
- 运行nginx作为反向代理以提供HTTPS支持。
Docker卷概述¶
Docker卷是在主机上创建的,用于持久性数据。这些允许启动和停止服务而不会丢失数据。请记住,容器是临时的,只有卷中的数据是永久的。
- otobo_opt_otobo
- 包含在 web 和 daemon 容器中的 /opt/otobo。
- otobo_mariadb_data
- 容器 **db**中包含 /var/lib/mysql。
- otobo_elasticsearch_data
- 容器`elastic`包含`/usr/share/elasticsearch/datal`。
- otobo_redis_data
- 包含容器“ redis”的数据。
- otobo_nginx_ssl
- 包含TLS文件,证书和私钥,必须手动初始化。
Docker环境变量¶
在说明中,我们只做了最基本的配置。但 .env 文件允许设置更多变量。以下是最重要的环境变量的简短列表。请注意,基本映像支持更多环境变量。
MariaDB设置
- otobo_db_root_password
- MariaDB 的根密码。运行服务 db 时需要此设置。
Elasticsearch设置
Elasticsearch需要在生产环境中进行一些设置。请阅读https://www.elastic.co/guide/zh-CN/elasticsearch/reference/7.8/docker.html#docker-prod-prerequisites了解详细信息。
- OTOBO_Elasticsearch_ES_JAVA_OPTS
- 设置案例:* OTOBO_Elasticsearch_ES_JAVA_OPTS = -Xms512m -Xmx512m *,在生产环境中,请将该值提高为4G。
Webserver设置
- otobo_web_http_port
- 设置以防HTTP端口偏离标准端口80。启用HTTPS时,HTTP端口将重定向到HTTPS。
nginx网络代理设置
这些设置在启用HTTPS时使用。
- otobo_web_http_port
- 设置以防HTTP端口偏离标准端口80。将重定向到HTTPS。
- otobo_web_https_port
- 设置以防HTTPS端口偏离标准端口443。
- otobo_nginx_ssl_certificate
- Nginx Webproxy的SSL证书。例如:* OTOBO_NGINX_SSL_CERTIFICATE = / etc / nginx / ssl / acme.crt *
- otobo_nginx_ssl_certificate_key
- Nginx Webproxy的SSL密钥。例如:* OTOBO_NGINX_SSL_CERTIFICATE_KEY = / etc / nginx / ssl / acme.key *
针对 Kerberos 的**Nginx 网络代理设置**
当单点登录使用 Kerberos 时,Nginx 将使用此设置。
- otobo_nginx_kerberos_keytab
- Kerberos keytab 文件。默认值为 /etc/krb5.keytab。
- otobo_nginx_kerberos_config
- Kerberos 配置文件。默认值为 /etc/krb5.conf,通常由 krb5.conf.template 生成
- otobo_nginx_kerberos_service_name
- Kerberos 服务名称。目前还不清楚该设置实际用于何处。
- otobo_nginx_kerberos_realm
- Kerberos REALM。用于 /etc/krb5.conf。
- otobo_nginx_kerberos_kdc
- Kerberos kdc / AD 控制器。用于 /etc/krb5.conf。
- otobo_nginx_kerberos_admin_server
- Kerberos 管理服务器。用于 /etc/krb5.conf。
- otobo_nginx_kerberos_default_domain
- Kerberos 默认域。用于 /etc/krb5.conf。
- nginx_envsubst_template_dir
- 提供自定义 Nginx 配置模板目录。提供额外的灵活性。
docker-compose设置
这些设置由docker-compose直接使用。
- 撰写项目名称
- 项目名称用作卷和容器的前缀。默认情况下,前缀设置为 otobo,因此容器名称为 otobo_web_1 和 otobo_db_1。如果想在同一服务器上运行多个 OTOBO 实例,请更改此名称。
- 撰写路径分隔符
- COMPOSE_FILE数值的分隔符
- COMPOSE_FILE
- 使用* docker-compose / otobo-base.yml 作为基础,并添加所需的扩展文件。例如 docker-compose / otobo-override-http.yml 或 docker-compose / otobo-override-https.yml *。
- otobo_image_otobo, otobo_image_otobo_elasticsearch, otobo_image_otobo_nginx, ...
- 用于指定替代 Docker 映像。用于测试本地构建或使用更新版本的映像。
进阶主题¶
Nginx网络代理的自定义配置¶
容器 otobo_nginx_1
通过将 Nginx 作为反向代理运行来提供 HTTPS 支持。容器中运行的 Docker 镜像由 Nginx 官方 Docker 镜像 https://hub.docker.com/_/nginx 和 Nginx 的 OTOBO 特定配置组成。
默认的 OTOBO 特定配置可在 /etc/nginx/template/otobo_nginx.conf.template 的 Docker 映像中找到。实际上,这只是最终配置的模板。Nginx 基本镜像会提供一个进程,用相应的环境变量替换模板中的宏。该进程在容器启动时运行。在默认模板文件中,使用了以下宏:
- otobo_nginx_ssl_certificate
- 用于配置 SSL。
- otobo_nginx_ssl_certificate_key
- 用于配置 SSL。
- otobo_nginx_web_host
- 内部使用的 HTTP 主机。
- otobo_nginx_web_port
- 内部使用的 HTTP 端口。
请参见步骤 4.,了解如何使用这种配置可能性来设置 SSL 证书。
Warning
只有OTOBO 10.0.4或更高版本支持以下方法。
如果标准宏不够用,还可以进一步定制。这可以通过用定制版本替换默认配置模板来实现。最佳做法是不要在运行的容器中简单更改配置。相反,我们首先要创建一个包含自定义配置的持久卷。然后,我们告诉 otobo_nginx_1 挂载新卷并使用自定义配置。
首先是生成新卷。在这些示例命令中,我们使用现有模板作为起点。
# stop the possibly running containers
docker_admin> cd /opt/otobo-docker
docker_admin> docker-compose down
# create a volume that is initially not connected to otobo_nginx_1
docker_admin> docker volume create otobo_nginx_custom_config
# find out where the new volume is located on the Docker host
docker_admin> otobo_nginx_custom_config_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_custom_config)
docker_admin> echo $otobo_nginx_custom_config_mp # just a sanity check
docker_admin> ls $otobo_nginx_custom_config_mp # another sanity check
# copy the default config into the new volume
docker_admin> docker create --name tmp-nginx-container rotheross/otobo-nginx-webproxy:latest-10_0 # or latest-10_1, use the appropriate label
docker_admin> docker cp tmp-nginx-container:/etc/nginx/templates/otobo_nginx.conf.template $otobo_nginx_custom_config_mp # might need 'sudo'
docker_admin> ls -l $otobo_nginx_custom_config_mp/otobo_nginx.conf.template # just checking, might need 'sudo'
docker_admin> docker rm tmp-nginx-container
# adapt the file $otobo_nginx_custom_config_mp/otobo_nginx.conf.template to your needs
docker_admin> vim $otobo_nginx_custom_config_mp/otobo_nginx.conf.template
Warning
调整后的Nginx配置通常包含指令** listen **,以明确Web服务器的端口。在OTOBO 10.0.3和OTOBO 10.0.4两个版本中,内部使用的端口有所变化。这个变化必须体现在调整后的nginx配置中。因此,对于10.0.3或更早版本,请使用端口80和443。对于OTOBO 10.0.4,请使用端口8080和8443。
设置卷之后,必须激活调整后的配置。新卷在 docker-compose/otobo-nginx-custom-config.yml 中设置。因此,必须将该文件添加到**COMPOSE_FILE**中。然后,必须引导 Nginx 使用新配置。具体方法是在环境中设置**NGINX_ENVSUBST_TEMPLATE_DIR**。为此,在*.env*文件中取消或添加以下行:
COMPOSE_FILE=docker-compose/otobo-base.yml:docker-compose/otobo-override-https.yml:docker-compose/otobo-nginx-custom-config.yml
NGINX_ENVSUBST_TEMPLATE_DIR=/etc/nginx/config/template-custom
更改后的Docker Compose配置可以通过以下方式进行检查:
docker_admin> docker-compose config | more
最后,可以再次启动容器:
docker_admin> docker-compose up --detach
另请参见https://hub.docker.com/_/nginx中的“在nginx配置中使用环境变量(1.19中的新功能)”部分。
在 Nginx 中使用 Kerberos 支持单点登录¶
简要说明
要启用 Kerberos 验证,请将 .env 文件 基于示例文件 .docker_compose_env_https_kerberos。这将激活 docker-compose/otobo-override-https-kerberos.yml 中的特殊配置。这个 Docker compose 配置文件会选择一个支持 Kerberos 的 Nginx 映像。它还会将一些特定于 Kerberos 的设置作为环境值传递给正在运行的 Nginx 容器。上面列出了这些设置。
通常,这些设置的值可以在 .env 文件中指定。这些设置的大部分值将用作模板 https://github.com/RotherOSS/otobo/blob/rel-10_1/scripts/nginx/kerberos/templates/krb5.conf.template 的替换值。替换在启动容器时进行。在运行中的容器中,/etc/krb5.conf 文件中将提供调整后的配置。
仍然可以提供用户专用的 /etc/krb5.conf 文件。这可以通过在容器中挂载一个覆盖 /etc/krb5.conf 的卷来实现。这可以通过在 .env 文件中设置 OTOBO_NGINX_KERBEROS_CONFIG,并激活 docker-compose/otobo-override-https-kerberos.yml 中的挂载指令来实现。
*/etc/krb5.keytab*总是针对特定安装,因此必须始终从主机系统加载。
** Kerberos SSO 安装教程**
文档:"so-kerberos
选择非标准端口¶
默认情况下,端口443和80分别为HTTPS和HTTP服务。在某些情况下,其他服务可能已经使用了这些端口中的一个或两个。在这些情况下,可以通过在* .env *文件中指定`OTOBO_WEB_HTTP_PORT`和`OTOBO_WEB_HTTPS_PORT`来覆盖默认端口。
跳过特定服务的启动¶
当前的 Docker compose 设置会启动五个服务,激活 HTTPS 后会启动六个服务。但在一些有效的使用案例中,并不需要其中的一个或多个服务。最典型的例子就是数据库不应作为 Docker 服务运行,而应作为外部数据库运行。遗憾的是,没有专门的 Docker compose 选项用于跳过特定服务。不过,"-scale "选项可被滥用于这一目的。因此,在安装外部数据库时,可以使用以下命令:
docker_admin> docker-compose up --detach --scale db=0
当然,也可以通过编辑 docker-compose/otobo-base.yml 文件并删除相关服务定义来实现同样的目标。
准备离线安装¶
请在能上网并安装了 docker 的系统上下载 `最新版本的 otobo-docker <https://doc.otobo.org/manual/installation/10.1/en/content/installation-docker.html#clone-the-otobo-docker-repo>`___。然后导航到以下文件夹 otobo-docker/docker-compose。
cd otobo-docker/docker-compose
现在,你可以运行以下命令从特定文件下载所有 Docker 镜像,在我的例子中,我使用的是 otobo-base.yml。
for i in $(cat otobo-base.yml| grep image:| cut -d":" -f3,4 | sed -e "s/-//1" -e"s/\}//g"); do docker pull $i; docker save $i -o $(echo $i|sed "s/\//-/g").docker; done
之后,镜像(.docker)就会出现在 docker-compose 文件夹中,并可以通过`SCP <https://en.wikipedia.org/wiki/Secure_copy_protocol>`__ 等方式上传到目标系统中。
在离线目标系统上,进入存放 docker 镜像的文件夹。然后输入以下命令,逐个导入它们。
在下面的示例中,我导入了 mariadb 映像:
docker load --input mariadb:10.5.docker
定制 OTOBO Docker Compose¶
与其编辑 docker-compose/ 下的文件并冒着用 otobo-docker 文件夹的 "下一次更新 <https://doc.otobo.org/manual/installation/10.1/en/content/updating-docker.html#updating-the-docker-compose-files>`_" 覆盖自己的选项的风险,不如创建一个额外的 YAML 文件,在其中用额外的选项覆盖特定的服务。
一个常见的例子是通过 3306 端口从外部访问数据库容器。为此,你可以创建一个额外的 docker compose 文件,其内容如下
$ cat custom_db.yml
services:
db:
ports:
- "0.0.0.0:3306:3306"
现在,我们必须告诉 docker-compose 包含我们的新文件。例如,你必须将 YAML 文件添加到 .env 文件中的 COMPOSE_FILE 变量:
COMPOSE_FILE=docker-compose/otobo-base.yml:docker-compose/otobo-override-http.yml:custom_db.yml
现在,我们可以使用 docker-compose 来重新创建我们的容器
$ docker-compose stop # if otobo is running
$ docker-compose up -d
通过此程序,您可以自定义任何服务或卷。
定制 OTOBO Docker 映像¶
许多自定义操作都可以在外部卷 otobo_opt_otobo 中完成,该卷与 Docker 镜像中的 /opt/otobo 目录相对应。例如,本地 Perl 模块可以安装到 /opt/otobo/local。下面是一个安装不太有用的 CPAN 模块 "Acme::123 "的示例。
$ docker exec -it ${COMPOSE_PROJECT_NAME:=otobo}_web_1 bash
otobo@ce36ff89e637:~$ pwd
/opt/otobo
otobo@ce36ff89e637:~$ cpanm -l local Acme::123
--> Working on Acme::123
Fetching http://www.cpan.org/authors/id/N/NA/NATHANM/Acme-123-0.04.zip ... OK
Configuring Acme-123-0.04 ... OK
Building and testing Acme-123-0.04 ... OK
Successfully installed Acme-123-0.04
1 distribution installed
otobo@ce36ff89e637:~$
这种方法的好处是无需修改 Docker 镜像本身。
安装额外的 Debian 软件包比较麻烦。一种方法是创建自定义 Dockerfile 并使用 OTOBO 镜像作为基础镜像。另一种方法是直接从运行中的容器创建修改后的镜像。这可以通过 "docker commit "命令完成,https://docs.docker.com/engine/reference/commandline/commit/。有关该过程的详细介绍,请访问 https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image。
但后一种方法需要克服两个障碍。首先,映像 otobo 默认以 UID 1000 的用户 otobo 运行。问题是用户 otobo 不允许安装系统软件包。因此,解决方案的第一部分是在运行映像时通过"--用户 root "选项。然而,第二个障碍是默认的入口点脚本 /opt/otobo_install/entrypoint.sh 在以 root 身份调用时会立即退出。这一设计决定背后的原因是,应避免无意中以 root 的身份运行。因此,解决方案的第二部分是指定一个不同的入口点脚本,该脚本不关心调用者是谁。下面是一个命令示例,我们在其中为 otobo 添加幸运饼干:
如果我们还没有带标签的 OTOBO 图像,则调出该图像,并检查该图像是否已提供幸运饼干:
$ docker run rotheross/otobo:rel-10_0_10 /usr/games/fortune
/opt/otobo_install/entrypoint.sh: line 57: /usr/games/fortune: No such file or directory
将幸运饼干添加到运行原始 OTOBO 映像的命名容器中。这是以用户 root 的身份在交互会话中完成的:
$ docker run -it --user root --entrypoint /bin/bash --name otobo_orig rotheross/otobo:rel-10_0_10
root@50ac203409eb:/opt/otobo# apt update
root@50ac203409eb:/opt/otobo# apt install fortunes
root@50ac203409eb:/opt/otobo# exit
$ docker ps -a | head
从停止的容器中创建映像并为其命名。注意必须恢复默认用户和入口点脚本:
$ docker commit -c 'USER otobo' -c 'ENTRYPOINT ["/opt/otobo_install/entrypoint.sh"]' otobo_orig otobo_with_fortune_cookies
最后,我们可以再检查一遍:
$ docker run otobo_with_fortune_cookies /usr/games/fortune
A platitude is simply a truth repeated till people get tired of hearing it.
-- Stanley Baldwin
修改后的图像可以在 .env 文件中指定,然后用于娱乐和盈利。
创建本地镜像¶
Note
通常只有在开发过程中才需要在本地构建 Docker 镜像。其他用例包括安装时需要使用最新的基础镜像,或者必须在镜像中添加额外功能。
在本地创建Docker映像所需的文件是git存储库https://github.com/RotherOSS/otobo的一部分:
- otobo.web.dockerfile
- otobo.nginx.dockerfile
- otobo.elasticsearch.dockerfile
实际创建图像的脚本是 bin/docker/build_docker_images.sh。
docker_admin> cd /opt
docker_admin> git clone https://github.com/RotherOSS/otobo.git
docker_admin> # checkout the wanted branch. e.g. git checkout rel-10_0_11
docker_admin> cd otobo
docker_admin> # modify the docker files if necessary
docker_admin> bin/docker/build_docker_images.sh
docker_admin> docker image ls
本地构建的 Docker 映像会使用文件 RELEASE 中设置的版本标记为 local-<OTOBO_VERSION>
。
构建完本地镜像后,可以返回 docker-compose 目录。本地镜像是通过在 .env 中设置 OTOBO_IMAGE_OTOBO
, OTOBO_IMAGE_OTOBO_ELASTICSEARCH
, ``OTOBO_IMAGE_OTOBO_NGINX``来声明的。
自动安装¶
与通过 http://yourIPorFQDN/otobo/installer.pl 相比,我们可以走捷径。这对于在新安装的系统上运行测试套件非常有用。
Warning
docker-compose down -v
将清除所有之前的配置和数据。
docker_admin> docker-compose down -v
docker_admin> docker-compose up --detach
docker_admin> docker-compose stop daemon
docker_admin> docker-compose exec web bash\
-c "rm -f Kernel/Config/Files/ZZZAAuto.pm ; bin/docker/quick_setup.pl --db-password otobo_root"
docker_admin> docker-compose exec web bash\
-c "bin/docker/run_test_suite.sh"
.......
docker_admin> docker-compose start daemon
常用命令列表¶
** Docker **
docker system prune -a
系统清理(清除所有未使用的镜像、容器、卷和网络)docker version
显示版本docker build --tag otobo --file=otobo.web.Dockerfile .
创建一个镜像- ``docker run --publish 80:5000 otobo``运行新的镜像
docker run -it -v opt_otobo:/opt/otobo otobo bash
登陆新的镜像- 如果entrypoint.sh被破坏了,可以尝试一下
docker run -it -v opt_otobo:/opt/otobo --entrypoint bash otobo
docker ps
显示正在运行的镜像docker images
显示可用的镜像- ``docker volume ls``列出卷名
docker volume inspect otobo_opt_otobo
检查一个卷docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_ssl
获取卷挂载点- ``docker volume rm tmp_volume``清除一个卷
docker inspect <container>
检查一个容器- docker save --output otobo.tar otobo:latest-10_0 && tar -tvf otobo.tar`` 列出映像中的文件
docker exec -it nginx-server nginx -s reload
重新加载 nginx
docker-compose设置
- ``docker-compose config``检查并显示相应配置
docker-compose ps
显示正在运行的容器- docker-compose exec nginx nginx -s reload`` 重新加载 nginx
资源¶
最后,这里收集了一些主观性很强的链接。
一般信息和教程
小贴士和提示
- 在Ubuntu 18.04 LTS上运行的Docker Compose更新版本请参考
- 在Ubuntu 18.04 LTS上运行的Docker更新版本请参考
- 清理未使用的图像 <https://forums.docker.com/t/command-to-remove-all-unused-images>`_
- Docker主机IP地址:
- `自己签名的证书:<https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-18-04>`_
故障排除