从零开始学Docker(三)

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

从零开始学Docker(三)

docker-compose

从零开始学Docker(三),java,docker

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止

下载安装

下载docker-compose

访问网站: [Release v2.14.2 · docker/compose · GitHub](https://github.com/docker/compose/releases)

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

上传到linux

从零开始学Docker(三),java,docker从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

移动到/usr/local/bin目录下
从零开始学Docker(三),java,docker
添加执行权限

从零开始学Docker(三),java,docker

修改文件名为docker-compose
从零开始学Docker(三),java,docker
检查docker-compose版本
从零开始学Docker(三),java,docker

docker-compose开发流程(一般流程)

在指定文件夹下创建docker-compose.yml文件
[root@localhost nginx]# touch docker-compose.yml
编辑docker-compose.yml
version: '3'
#使用自定义的network,wn_docker_net 为自定义的docker网络。
networks:
  wn_docker_net:
    external: true
services:
  nginx-compose:
    build: .
    image: nginx
    container_name: ngnix2
    ports:
      - "8075:80"
    restart: always
    networks:
      wn_docker_net:
      #在自定义网络中指定IP
        ipv4_address: 172.18.12.80
运行docker-compose.yml文件

docker-compose up -d

从零开始学Docker(三),java,docker
[root@localhost nginx]# docker-compose up -d
[+] Running 7/7

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

测试响应

从零开始学Docker(三),java,docker

docker-compose开发流程(idea版)

编写docker-compose.yml文件
在项目下创建docker-compose.yml文件

从零开始学Docker(三),java,docker从零开始学Docker(三),java,docker

编辑文件docker-compose.yml文件
version: '2'
services:
  test-mycompose:
    build: .
    #镜像名称
    image: myapp:1.0
    #容器名称
    container_name: springboot-docker-compose
    #映射端口号
    ports:
      - "8990:8990"
    restart: always
idea配置docker-compose插件
  • 点击Edit Configurations

从零开始学Docker(三),java,docker

  • 选择Docker-compose 插件

从零开始学Docker(三),java,docker

  • 配置docker-compose

从零开始学Docker(三),java,docker

运行docker-compose
运行docker-compose
从零开始学Docker(三),java,docker
idea中运行docker-compose错误

提示:出现以下错误,解决方案,安装windows版本Docker Desktop

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

安装Docker Destop

从零开始学Docker(三),java,docker从零开始学Docker(三),java,docker
打包项目

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

运行docker-compose

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker
linux服务器docker运行情况

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

从零开始学Docker(三),java,docker

docker-compose.yml配置详解

  1. services: 定义各个容器。
  2. networks: 定义需要使用的network。
  3. volumes: 定义services中的volumes。
从零开始学Docker(三),java,docker
version

版本信息,定义关乎于docker的兼容性,Compose 文件格式有3个版本,分别为1, 2.x 和 3.x

build

指定构建镜像的 dockerfile 的上下文路径,或者详细配置对象。

context

包含Dockerfile文件的目录路径,或者是git仓库的URL。 当提供的值是相对路径时,它被解释为相对于当前compose文件的位置。 该目录也是发送到Docker守护程序构建镜像的上下文。

dockerfile

备用Docker文件。Compose将使用备用文件来构建。 还必须指定构建路径。

args

添加构建镜像的参数,环境变量只能在构建过程中访问

案例
build:
  context: .
  args:
    buildno: 1
    password: secret
image

指定容器中的镜像名称。如果本地镜像不存在则从仓库中pull。

image: nginx
container_name

定义容器的名称。

container_name: my_redis
command

覆盖容器启动后默认执行的命令(Dockerfile定义的CMD),当Dockerfile定义了entrypoint的时候,docker-compose.yml定义的command会被覆盖。

command: ["bundle", "exec", "thin", "-p", "3000"]
entrypoint

可以覆盖Dockerfile中定义的entrypoint命令。

env_file

定义了在docker-compose.yml中使用的变量,封装变化,提高docker-compose.yml文件的灵活性。

environment

添加环境变量。 你可以使用数组或字典两种形式。 任何布尔值; true,false,yes,no需要用引号括起来,以确保它们不被YML解析器转换为True或False。

environment:
  - discovery.type=single-node
  - ES_JAVA_OPTS=-Xms4g -Xmx4g
ports

将容器的端口映射到宿主机端口。

ports:
  - "9200:9200"
  - "9300:9300"
volumes

挂载一个目录或者一个已经存在的数据容器。

volumes:
  - /usr/local/softwares/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  - /usr/local/softwares/elk/elasticsearch/data:/usr/share/elasticsearch/data
  - /usr/local/software/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins

networks

加入指定网络。

networks:
  wn_docker_net:
    external: true
services:
  es-compose:
    image: elasticsearch:7.17.7
    container_name: es
    networks:
      wn_docker_net:
        ipv4_address: 172.18.12.70

docker-compose案例

version: '2'
networks:
  wn_docker_net:
    external: true
services:
  es-compose:
    image: elasticsearch:7.17.7
    container_name: es
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms4g -Xmx4g
    volumes:
      - /usr/local/softwares/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /usr/local/softwares/elk/elasticsearch/data:/usr/share/elasticsearch/data
      - /usr/local/software/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
    networks:
      wn_docker_net:
        ipv4_address: 172.18.12.70
  kibana-compose:
    image: kibana:7.17.7
    container_name: kibana
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS = http://192.168.198.128:9200
    networks:
      wn_docker_net:
        ipv4_address: 172.18.12.71

docker 常见问题

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

问题描述

当输入docker命令时显示,“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”

问题起因
  • docker服务关闭
解决方案

重新启动docker服务

service docker start

[root@localhost ~]# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start docker.service
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED       STATUS         PORTS                                       NAMES
c291e5b6b196   ms-nginx-a:1.0   "java -jar /ms-nginx…"   11 days ago   Up 6 seconds   0.0.0.0:9990->9990/tcp, :::9990->9990/tcp   ms-nginx-compose-a
ade2bb34a56f   ms-nginx-b:1.0   "java -jar /ms-nginx…"   11 days ago   Up 6 seconds   0.0.0.0:9991->9991/tcp, :::9991->9991/tcp   ms-nginx-compose-b
18fc6780b342   myapp:1.0        "java -jar /myapp.jar"   3 weeks ago   Up 6 seconds   0.0.0.0:8990->8990/tcp, :::8990->8990/tcp   springboot-docker-compose

bash: vim: command not found

如果出现"command not found"是因为docker容器中默认没有安装相应的命令。使用

apt-get update

apt-get install 命令文章来源地址https://www.toymoban.com/news/detail-779685.html

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

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

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

相关文章

  • docker从零开始(2)----应用部署/dockerfile

    通信 容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和机器可以直接通信 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。这种操

    2024年02月07日
    浏览(55)
  • 【云原生 | 从零开始学Docker】二、Docker的常用指令学习以及使用

    该篇文章已经被专栏《从零开始学docker》收录 我们应该如何去学习docker的命令,这是一个老生常谈的话题了,作为一个知识类博主,我想告诉各位的是学习的方法真的很重要,学习一个东西,不只是死记硬背,学习命令也一样,所以接下来这个命令是最重要的,没有之一,要

    2023年04月08日
    浏览(40)
  • 【云原生 | 从零开始学Docker】一、Docker的安装,启动以及工作原理

    我们知道,传统的项目开发和运维是两套环境,而且要一一配置环境并且有的时候更新还会导致服务不可用,这就很麻烦了,那么有没有一种很方便不用这么麻烦的技术可以一键安装呢?有!那就是我们的Docker。 现在, 用Docker可以打包应用以及环境到一个可移植的镜像中,

    2024年01月16日
    浏览(48)
  • 从零开始:如何使用Docker构建微服务架构

    使用 Docker 构建微服务架构是一种流行的方法,因为 Docker 提供了轻量级的容器化技术,使得每个微服务可以在隔离的环境中独立运行。从零开始构建这样的架构涉及到多个步骤,包括理解微服务架构的基本概念、安装 Docker、创建 Docker 容器和镜像、配置网络,以及部署和管理

    2024年04月14日
    浏览(55)
  • 【Docker】从零开始:6.配置镜像加速器

    镜像加速器是一个位于Docker Hub之前的缓存服务器,用于加速Docker镜像的下载。当我们配置了镜像加速器后,从Docker Hub下载镜像时,Docker将首先尝试从加速器服务器下载镜像,如果加速器服务器上没有该镜像,则会从Docker Hub下载。 Docker加速器是一种工具,可以加速Docker镜像的

    2024年02月05日
    浏览(50)
  • 【云原生 | 从零开始学Docker】六、如何写出自己的镜像——Docker file

    该篇文章已经被专栏《从零开始学docker》收录 在上一篇文章中其实有一个点我没有说,那就是 如何实现两个或者多个容器之间数据共享 。 打个比方,有两个容器 一个父容器一个子容器,谁去挂载了谁,那么它就是父容器,比如c2挂载c1,那么c1就是父,只要挂载了,同步的

    2024年02月03日
    浏览(50)
  • 【云原生 | 从零开始学Docker】三、Docker实战之安装Nginx和Tomcat

    该篇文章已经被专栏《从零开始学docker》收录 通过前面两章的学习,相信各位朋友们都在自己的服务器上安装了docker了,也熟悉了一些常用的指令,这里我带着大家去做一些简单的实战来让各位更熟悉这些指令!接下来的内容最好跟着敲一遍,记一下步骤,能让你更深刻理解

    2023年04月08日
    浏览(44)
  • 【云原生 | 从零开始学Docker】七丶实战提交自己的镜像以及docker网络

    该篇文章已经被专栏《从零开始学docker》收录 为了巩固dockerfile,我们这里来进行真实的实战。 jdk 下载linux.tar.gz tomcat 最新版就行 首先我们要 vim Dockerfile 以此来创建一个叫dockerfile的文件。注:官方指定命名,build自动寻找,不需要-f指定 然后编写以上的脚本内容加入到dock

    2024年02月02日
    浏览(54)
  • 【从零开始】Docker Desktop:听说你小子要玩我

    捡起遗忘的Docker知识 由于本狗近期 项目紧任务重 ,高强度的搬砖导致 摸鱼时间下降 。在上线项目时,看到 运维大神 一系列骚操作, docker+k8s的知识 如过眼云烟,忘得干净的很。所以想重新恶补一下 docker知识 ,但又碍于 服务器资源有限 ,只能从 本狗win10电脑进行安装D

    2023年04月14日
    浏览(32)
  • 【Mysql系列】从零开始学MySQL:Docker部署快速上手

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年02月06日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包