Docker容器技术详解(四)

这篇具有很好参考价值的文章主要介绍了Docker容器技术详解(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章将介绍docker-compose技术,如果想要了解docker前置内容,可以查看以下两篇文章.

Docker容器技术详解(一)

Docker容器技术详解(二)

Docker容器技术详解(三)

安装docker-compose

[root@harbor ~]# curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose

注意,要想使用docker-compose命令的话需要在有docker-compose.yml文件的目录才能使用docker-compose命令

Compose命令说明

启动docker-compose.yml文件

docker-compose up -d
#-d  后台运行

查看docker-compose的进程

docker-compose ps

 关闭docker-compose运行服务

#该命令会关闭所有使用up启动的容器
docker-compose down

按照服务名启动服务

docker-compose start 服务名

按照服务名关闭服务

docker-compose stop 服务名

按照服务名重启服务

docker-compose restart 服务名

按照服务名删除服务

docker-compose rm 服务名

查看服务日志

docker-compose logs 服务名

查看在docker-compose.yml中使用到的镜像

docker-compose images

查看所有服务进程

docker-compose top

以上就是docker-compose的常用命令,接下来我们来讲docker-compose.yml文件的写法吧

docker-compose文件书写规范

  • 文件中不能存在Tab缩进,一切缩进都需要用空格一个个补齐
  • 文件中冒号:后面必须空一格
  • 如果看见文件中有 - xxx,这个- xxx 代表的是数组参数

接下来,让我们以一个案例来开启我们的docker-compose之旅吧!!🎉🎉

案例 

使用docker-compose来运行一个nginx容器,将nginx容器的80端口映射到主机的8888端口上

version: '3.0'
services:
  //webapp是自定义服务名,可以自定义
  webapp:
      image: nginx
      ports:
        - "8888:80"

在写完docker-compose.yml文件后要运行

docker-compose up -d

将webapp服务运行进行停止

docker-compose stop webapp

接下来我们将对文件中出现的参数进行讲解和补充.

version

代表docker-compose的版本,建议使用3.0版本

services

从这里开始就可以写服务名了,里面每一个服务名代表一个容器

image

表示该服务容器的一个依赖镜像,他会优先在本地寻找镜像是否存在,如果不存在,docker-compose会尝试自己拉取镜像

ports

暴露端口信息,在文件中ports属于数组,可以写多个端口在内,如

注意: ports会将端口信息映射到主机上

"宿主机端口:容器内端口"

ports:
   - "80:80"
   - "8888"

接下来就是对docker-compose.yml的一些补充命令

networks

networks和ports一样,也是数组,可以写多个参数

networks用于配置容器连接的网络。

network:
    - testnet1
    - testnet2

volumes

volumes也是数组类型,可以存放多个数据

volumes用于声明数据卷挂载路径,有以下三种格式

volumes:
    - 容器内需要挂载路径
    - 宿主机路径:容器内需要挂载路径
    - 宿主机路径:容器内需要挂载路径:ro

ro是访问模式,代表只读

environment

设置环境变量,也是数组形式

environment:
     - MYSQL_ROOT_PASSWORD: 123456

该例子是配置了mysql数据库的密码.

expose

暴露端口,这里只是作为提醒,不会将端口映射到宿主机上,仅仅只是告诉使用者,我的这个端口映射容器内的哪一个端口

expose也是数组形式,可以写多个参数

expose:
    - "8888"
    - "7777"

labels

这里是对docker-compose.yml做解释用的,相当于注释信息

labels:
  com.startupteam.description: "webapp for a startup team"
  com.startupteam.department: "devops department"
  com.startupteam.release: "rc3 for v1.0"

command

这里是在容器启动时要执行的命令

commands: echo 'hello'

devices

devices用于指定设备映射关系,就是将内部的文件目录与宿主机的文件目录做关联映射

宿主机目录路径:容器内目录路径

devices:
    - "/test1:/test"

build

build是用来构建Dockerfile文件的,build后面要设置Dockerfile路径

如:Dockerfile路径在/test下

build: /test/

Dockerfile文件如下:

FROM openjdk:8
COPY app.jar /usr/local
ENTRYPOINT ["java","-jar","/usr/local/app.jar"]

个人总结:

docker-compose最好用的地方就在于他一个文件可以构建多个容器,只需要一个文件就可以运行起来一个服务架构,你可以将SpringBoot或者SpringCloud用到的技术(如redis,mysql,elasticsearch,rabbitmq等等)全部塞到docker-compose.yml中,然后运行.

以上就是docker-compose相关的内容,欢迎各位评论教导,如果觉得文章还不错或者有什么地方不懂的,欢迎留言提问点赞🧡🤞🤞🤞🧡文章来源地址https://www.toymoban.com/news/detail-475072.html

到了这里,关于Docker容器技术详解(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 容器技术(Docker)

    容器技术的核心就是通过对资源的 限制 和 隔离 把进程运行在一个沙盒中。并且这个沙盒可以被打包成容器镜像(Image),移植到另一台机器上可以直接运行,不需要任何的多余配置。其中docker是容器技术的事实标准。 使用容器部署有什么优势? 容器具有强一致性,由同一

    2024年02月10日
    浏览(43)
  • docker容器技术

    什么是docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于

    2024年02月06日
    浏览(34)
  • 容器化技术-Docker

    一、引言 1.1 什么是Docker(重要 - 部署)? Docker 是一个开源的应用 容器 引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙

    2024年02月04日
    浏览(31)
  • Docker容器技术之镜像制作

    上篇文章说到过,作为用户是不需要制作镜像的,因为几乎所有常用的数据局库、应用软件、中间件在Docker Hub 里面可以找到,但是如果到了万不得已的时候我们还是要自己制作镜像,比如给自己编写的软件制作镜像。 制作镜像有两种方法: 1.docker commit命令 2.编写Dockerfile利

    2024年02月05日
    浏览(47)
  • Docker容器技术——真的很细

    目录 一、容器介绍 1、云计算服务类型 2、容器本质 3、容器和虚拟机对比 4、 docker基本概念 5、docker的优势 交付物标准化 一次构建,多次交付 应用隔离 6、Docker三大核心组件 Docker仓库 Docker容器 7、Docker对服务器端开发/部署带来的变化 二、容器安装部署 三、国内镜像仓库的

    2024年02月09日
    浏览(38)
  • Docker容器技术|最强王者篇

    🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,感

    2024年02月06日
    浏览(38)
  • 【Docker】Docker使用之容器技术发展史

    🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长,值得我们全力奔赴更美好的生活✨ 🐤本篇文章将讲述Docker容器的技术发展史 😁容器不是一个新概念或者新

    2024年02月12日
    浏览(35)
  • Docker技术之容器与外部相连

    说明,在本文中,所有的images采用的是busybox:latest。系统采用的是Ubuntu22.04. 容器与外部相连说的是容器网络以外的网络,可以是任何业务网络或者其他自建的网络,通常情况下是指互联网。 一、容器访问外部网络 前面文章知道容器通过网桥(默认docker0或者自建的网桥)就可

    2024年02月11日
    浏览(49)
  • Docker 容器编排技术解析与实践

    探索了容器编排技术的核心概念、工具和高级应用,包括 Docker Compose、Kubernetes 等主要平台及其高级功能如网络和存储管理、监控、安全等。此外,文章还探讨了这些技术在实际应用中的案例,提供了对未来趋势的洞见。 容器编排是现代云原生应用管理的核心,它涉及在大规

    2024年04月08日
    浏览(40)
  • Docker容器编排技术解析与实践

    本文全面探索了容器编排技术的核心概念、工具和高级应用,包括Docker Compose、Kubernetes等主要平台及其高级功能如网络和存储管理、监控、安全等。此外,文章还探讨了这些技术在实际应用中的案例,提供了对未来趋势的洞见。 关注【TechLeadCloud】,分享互联网架构、云服务

    2024年04月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包