详解如何使用Docker-Compose命令

 更新时间:2019年09月17日 09:44:16   作者:布加迪编译  
这篇文章主要介绍了详解如何使用Docker-Compose命令,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

你可以通过多种方式来管理和部署Docker容器。你可以直接使用Docker命令、借助众多GUI工具中的一款(基于Web的工具和面向桌面客户端的工具),也可以选择走docker-compose这条路。

Docker Compose是什么东东?Docker Compose用于创建容器及容器之间的连接。然而,docker-compose命令的用途实际上广泛得多。使用此命令可以:构建映像、扩展容器、修复容器、查看容器的输出、列出容器的公共端口等等。

那么如何使用docker-compose呢?不妨一探究竟。

如何安装Docker Compose?

即使你已经在服务器上安装了Docker,也很可能没有安装Docker Compose。要安装Docker Compose,执行以下命令:

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname 
-s)-$(uname -m)" -o /usr/local/bin/docker-compose 
sudo chmod +x /usr/local/bin/docker-compose 

使用以下命令验证安装:

docker-compose version 

你应该会看到几个应用程序的版本号(图A)。

图A. Docker Compose已安装并准备就绪

Docker文件

为了部署容器,Docker Compose依赖docker-compose.yml文件,该文件用于将Docker容器部署到你的特定环境。假设你想部署Wordpress容器。先使用以下命令创建一个新目录:

mkdir ~/wordpressbuild 

使用以下命令切换到该新目录:

cd ~/wordpressbuild 

使用以下命令创建新的Docker Compose文件:

nano docker-compose.yml 

将以下内容(取自官方Docker Compose文档)粘贴到文件中:

version: '3.3' 
 
services: 
  db: 
   image: mysql:5.7 
   volumes: 
    - db_data:/var/lib/mysql 
   restart: always 
   environment: 
    MYSQL_ROOT_PASSWORD: somewordpress 
    MYSQL_DATABASE: wordpress 
    MYSQL_USER: wordpress 
    MYSQL_PASSWORD: wordpress 
  
 wordpress: 
   depends_on: 
    - db 
   image: wordpress:latest 
   ports: 
    - "8000:80" 
   restart: always 
   environment: 
    WORDPRESS_DB_HOST: db:3306 
    WORDPRESS_DB_USER: wordpress 
    WORDPRESS_DB_PASSWORD: wordpress 
    WORDPRESS_DB_NAME: wordpress 
volumes: 
  db_data: {} 

保存并关闭该文件。

现在我们使用以下命令构建项目并在分离模式下部署容器:

docker-compose up –d 

该命令将下载所有必需的映像(本例中是MySQL和Wordpress),然后在端口8000上部署该服务。可以将Web浏览器指向http://SERVER_IP:8000(其中SERVER_IP是托管服务器的IP地址),查看Wordpress安装页面(图B)。

图B. Wordpress安装程序

如何检查你的部署?

假设你想检查来自部署的日志。为此,执行以下命令:

docker-compose logs 

你应该会看到来自上一次部署的大量信息(图C)。

图C. 查看来自Wordpress的docker-compose部署的日志

该命令将输出大量信息(如果你部署了众多容器更是如此)。相反,你可以指定要查看日志文件的服务。如何知道使用哪个服务名称?检查docker-compose.yml文件。在本文示例中,我们有两个服务:

  • db:数据库
  • wordpress:Wordpress容器

因此,如果你只想查看wordpress服务的日志,那么该命令将是:

docker-compose logs wordpress 

你也可以查看日志的输出(就像使用tail命令那样),如下所示:

docker-compose logs -f wordpress 

只要wordpress服务的新信息记入日志,就会出现在终端窗口中(图D)。

图D. 查看wordpress服务日志

如果你忘了部署中使用哪些端口,该怎么办?可以查看docker-compose.yml文件,也可以将port选项与docker-compose命令一起使用。你要知道服务的内部命令。比如说,Wordpress默认使用端口80,因此我们知道这是内部端口。但我们将什么分配为面向网络的端口?用以下命令查清楚:

docker-compose port wordpress 80 

该命令的输出将显示我们将内部端口80映射到外部端口8000(图E)。

图E. Wordpress的端口映射

如果你记不得已部署的容器,可以执行命令:

docker-compose ps 

输出会列出已部署的每个容器(图F)。

 

图F. 容器列表

刚刚开始

这应该让你可以开始领略Docker Compose的强大功能。我们会在下一篇文章中细述docker-compose.yml文件,弄清楚如何构建自己的容器。

原文标题:How to use the docker-compose command,作者:Jack Wallen

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 用Jenkins+Docker+Maven+Git实现持续集成(超详细)

    用Jenkins+Docker+Maven+Git实现持续集成(超详细)

    本文通过较大的篇幅详细介绍了Harbor这款企业级docker管理工具的使用,并通过案例演示了如何在jenkins中配置任务集成Harbor,从而实现镜像的构建推送与分发,需要的朋友可以参考下
    2024-04-04
  • docker容器自动退出重启报错问题及解决

    docker容器自动退出重启报错问题及解决

    这篇文章主要介绍了docker容器自动退出重启报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • docker-compose启动mysql双机热备互为主从的方法实现

    docker-compose启动mysql双机热备互为主从的方法实现

    本文主要介绍了docker-compose启动mysql双机热备互为主从的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Docker安装Nacos单机的实现方式(配合宝塔)

    Docker安装Nacos单机的实现方式(配合宝塔)

    这篇文章主要介绍了Docker安装Nacos单机的实现方式(配合宝塔),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Docker如何删除镜像

    Docker如何删除镜像

    本文详细介绍了如何使用Docker删除镜像,包括查看镜像、删除单个镜像、删除多个镜像、删除所有镜像以及注意事项,删除镜像是一个常见的操作,用于清理不再需要的镜像,以节省存储空间
    2025-03-03
  • 关于Docker的基础概念分享

    关于Docker的基础概念分享

    Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于 Google公司推出的Go语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub上进行维护。
    2017-01-01
  • 关于docker部署的jenkins跑git上的程序的问题

    关于docker部署的jenkins跑git上的程序的问题

    这篇文章主要介绍了docker部署的jenkins跑git上的程序的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Docker安装MySQL并使用Navicat连接的使用示例

    Docker安装MySQL并使用Navicat连接的使用示例

    在Docker里运行MySQL的方式还是很方便的,本文主要介绍了Docker安装MySQL并使用Navicat连接的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Docker中redis安装及测试教程

    Docker中redis安装及测试教程

    这篇文章主要介绍了Docker中redis安装及测试教程的一些基础方法和知识,为后续安装部署redis集群做准备,需要的朋友可以参考下
    2022-11-11
  • 使用 Docker 在 Ubuntu 上部署 FTP 服务器的步骤

    使用 Docker 在 Ubuntu 上部署 FTP 服务器

    本文详细介绍了如何在Ubuntu系统上通过Docker部署FTP服务器的步骤,包括安装Docker、拉取vsftpd镜像以及运行FTP容器等,通过这些步骤,用户可以在提供的免费云服务器上快速搭建起一个安全高效的FTP服务,适合小型项目或个人使用,感兴趣的朋友跟随小编一起看看吧
    2024-10-10

最新评论