Docker 入门与实践:从零开始构建容器化应用环境

news2025/1/15 23:24:30

Docker

  • 一、docker常用命令
    • docker ps 格式化输出
    • Linux设置命令别名
  • 二、数据卷
    • 相关命令
    • 挂载到默认目录(/var/lib/docker)
    • 挂载到本地目录
  • 三、自定义镜像
    • Dockerfile
    • 构建镜像的命令
  • 四、网络
    • 自定义网络
  • 五、DockerCompose
    • 相关命令

一、docker常用命令

在这里插入图片描述

docker ps 格式化输出

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"

Linux设置命令别名

编辑此文件

vi ~/.bashrc

alias [别名]=[需要别名的命令]
注意,等号两边不要空格,若命令包含空格,则一定要加 ‘ ’

刷新生效

source ~/.bashrc

举个例子:
在这里插入图片描述

二、数据卷

在docker容器中,容器只包含可运行的最小环境,在容器不能使用vi命令进行编辑,因此通过数据卷把容器中的文件挂载到宿主机,实现双向数据绑定。

  • 数据卷是一个虚拟目录,方便操作容器内文件
  • -v 数据卷名:容器目录
    在这里插入图片描述

相关命令

在这里插入图片描述

挂载到默认目录(/var/lib/docker)

在这里插入图片描述

挂载到本地目录

在这里插入图片描述
举个例子:

docker运行mysql镜像

在这里插入图片描述

三、自定义镜像

镜像结构:
在这里插入图片描述

Dockerfile

在这里插入图片描述
举个例子:
在这里插入图片描述

构建镜像的命令

在这里插入图片描述
举个例子:

在这里插入图片描述

四、网络

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器都会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
注意:网桥分配的ip地址是随机的,每次容器启动可能分配的ip地址不相同。
在这里插入图片描述

自定义网络

自定义网络会创建一个新的虚拟网桥,容器之间可以通过容器名相互访问,不再受ip地址变化而影响访问
在这里插入图片描述
容器加入自定义网络的两种方式:

  • 在容器创建时,可以直接加入网络。
    在这里插入图片描述
  • 在容器已经运行后,使用命令行加入
docker network connect 【网络】【容器名】

举个例子:
在这里插入图片描述

五、DockerCompose

通过一个yml文件,可快速构建项目。
在这里插入图片描述
和docker run的语法相比较:
在这里插入图片描述

相关命令

在这里插入图片描述
举个例子:

[root@long java-jar-web-project-docker]# cat docker-compose.yml 
version: '3'                                     # Docker-Compose版本
services: 
    web:
        build:                                   # Jdk运行环境使用Dockerfile文件
            context: ./web-service
            dockerfile: Dockerfile
        ports:                                   # 端口映射  9999 -> 9999
            - '9999:9999'
        container_name: web_db                	 # 容器名
        volumes:
            - './jar:/home/jar_home'             # 映射路径, 将主机的 ./jar 路径映射到容器内的/home/jar_home
        depends_on:       						 # 执行顺序
            - 'redis'
            - 'mysql'
        networks:								 # 绑定ip地址
            extnetwork:
                ipv4_address: 175.20.0.4
    mysql:       								 # mysql 同上
        environment:
            MYSQL_ROOT_PASSWORD: 123456
            MYSQL_USER: test
            MYSQL_PASS: test
        image: mysql:5.7
        networks:
            extnetwork:
                ipv4_address: 175.20.0.2
        container_name: mysql_db
        restart: always
        volumes:
            - './mysql-service/db:/var/lib/mysql'
            - './mysql-service/conf/my.cnf:/etc/my.cnf'
            - './mysql-service/init:/docker-entrypoint-initdb.d/'
        ports:
            - '6606:3306'
    redis:  									 # redis 
        restart: always
        image: redis 							 # redis镜像
        container_name: redis_db    			 # redis容器名字
        command: redis-server --requirepass 123456 --appendonly yes    # redis容器密码,开启持久化
        networks:								 # 绑定ip地址
            extnetwork:
                ipv4_address: 175.20.0.3
        ports:									 # 端口映射
            - '6609:6379'
        volumes:   								 # 将本地 ./redis-service/db 映射到 容器中的 /data 目录
            - './redis-service/db:/data'
networks:
    extnetwork:
        ipam:
            config:
            - subnet: 175.20.0.0/16

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS为什么要区分任务函数和中断函数?

在我们之前的学习中,队列,信号量,互斥量,事件组,任务通知,它们都有两套函数,在任务中使用或在中断中使用。 1.为什么要用两套函数? 情景1: 我们在写队列的时候等待100…

CDGA|企业的不同阶段如何做数据治理?

随着数字化时代的到来,数据已经成为企业运营和决策的核心要素。因此,数据治理成为企业在不同阶段必须面对的重要课题。 本文将探讨企业在初创期、成长期、成熟期和转型期四个阶段应如何进行数据治理。 初创期:建立数据治理基础 在初创期&…

电子电器架构 --- 主机厂产线的两种刷写方法

电子电器架构 — 主机厂产线的两种刷写方法 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

Linux——基础IO2

引入 之前在Linux——基础IO(1)中我们讲的都是(进程打开的文件)被打开的文件 那些未被打开的文件呢? 大部分的文件都是没有被打开的文件,这些文件在哪保存?磁盘(SSD) OS要不要管理磁盘上的文件?(如何让OS快速定位一个文件) 要…

数据库基本概念Day01--基本概念

目录 一. 数据库的基本概念 1. 数据 2. 数据库 3. 数据库管理系统 4. 数据库应用程序 5. 数据库管理员 6. 最终用户 7. 数据库系统 一. 数据库的基本概念 1. 数据 数据(Data)是指:对客观事物进行描述并乐意鉴别的符号。这些符号可识别的、抽…

PN结击穿与电容效应分析

PN结是半导体器件中的一个基本结构,它由P型半导体和N型半导体紧密接触并相互结合在一起形成。P型半导体富含空穴(正电荷载体),是通过掺入受主杂质原子得到的;而N型半导体富含自由电子(负电荷载体&#xff0…

计算机嵌入式实习一定要掌握这些知识

在进行计算机嵌入式实习时,掌握以下这些知识是至关重要的! 当你踏入嵌入式领域的大门,首先需要扎实掌握嵌入式系统基础,这是整个嵌入式开发的根基。同时,C 语言和 C编程也是必不可少的技能。C 语言以其高效的性能和与…

上传文件到 linux

一、mac 法一:scp 先进入mac的 Node_exporter文件(要上传的文件)目录下 输入scp -P 端口号 文件名 rootIP:/存放路径 scp -P 22 node_exporter-1.8.0.linux-amd64.tar.gz root192.***.2:/root 法二、 rz mac 安装 lrzsz,然后…

《OriginBot V2.0.2新功能体验::Froxglove》

0x00 官方通知; 最新消息:OriginBot V2.0.2版本正式发布,新增Webviz可视化,点击查看 0x01 Webviz基本概念; Webviz和rviz一样都是ROS开发中的可视化利器。区别在于rviz只能运行在ros环境中,而Webviz可能多…

《罪与罚》读后感

陀思妥耶夫斯基和列夫托尔斯泰是公认的俄国文学黄金时代的两座高峰,分别代表着俄国文学的“深度”和“广度”。列夫托尔斯泰的鸿篇巨著《复活》《安娜卡列尼娜》等等都已经拜读过,但陀思妥耶夫斯基的作品却一本也没有看过,实在是有点遗憾。这…

输电线路防鸟挡板,保电更护鸟

随着电力需求的不断增长,输电线路的安全和稳定运行变得愈发重要。然而,鸟类的活动却时常给输电线路带来隐患。他们经常在输电线路上筑巢或停歇,导致线路短路、绝缘子闪络等故障频发,而且一不小心触电的话就一命呜呼了~ 为了能够让…

初学python记录:力扣1652. 拆炸弹

题目: 你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。 为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。 如果 k > 0 ,将第 i 个数字用…

根据Docker部署nginx并且实现https

一、根据Docker部署nginx并且实现https 1.1、Docker中启用HTTPS有几个重要的原因 安全性:HTTPS通过加密数据传输,可以确保数据在传输过程中不被窃听或篡改。这对于保护敏感信息(如用户凭据、支付信息等)的传输至关重要。 数据完…

VGA项目:联合精简帧+双fifo+sobel算法 实现VGA显示(未完)

前言:该项目实际上是在很多基础的小练习上合成起来的,例如涉及到uart(rs232)的数据传输、双fifo流水线操作、VGA图像显示,本次内容在此基础上又增添了sobel算法,能实现图像的边沿监测并VGA显示。 文章目录…

使用第三方接口,查询实时快递单号

开通接口服务 全国快递物流查询-快递查询接口【最新版】_自动识别接口_快递查询_数据API-云市场-阿里云 RestTemplate: RestTemplate是Spring框架中的一个用于发送HTTP请求的客户端工具类。它提供了丰富的方法来发送GET、POST、PUT、DELETE等类型的HTTP请求,并支持…

Java内存区域详解

一、Java内存区域划分 1、分为运行时数据区域和本地内存 运行时数据区域是指 Java 虚拟机在运行 Java 程序时使用的不同内存区域,由虚拟机动态管理。本地内存是指由操作系统分配和管理的内存区域,它与虚拟机无关。在 Java 中,本地内存通常用…

生信网络学院|05月10日《全新DWG/DXF文件编辑工具——DraftSight Enterprise》

课程主题:全新DWG/DXF文件编辑工具——DraftSight Enterprise 课程时间:2024年05月10日 14:00-14:30 主讲人:任宇泽 生信科技 解决方案顾问 DraftSight介绍图形用户界面通用命令自定义块尺寸标注导入、导出和附加图纸集管理器Power Tools机…

大学生租房|基于Springboot+vue的大学生租房平台(源码+数据库+文档)

大学生租房平台 目录 基于Springbootvue的大学生租房平台 一、前言 二、系统设计 三、系统功能设计 1 管理员功能实现 5.1.1 房东管理 2 房东功能实现 5.2.1 信息审批管理 3 用户功能实现 5.3.1 房源信息 四、数据库设计 五、核心代码 六、论文参考 七、最新计…

半导体制冷片厂商正元泰达授权世强硬创代理,产品制冷率高寿命长

近日,为扩充旗下产品创新及供应平台世强硬创的半导体制冷片产品,满足硬科技企业不同层次的选择,世强先进(深圳)科技股份有限公司(下称“世强先进”)与正元泰达科技(深圳)…

PG 全页写

1.什么是全页写 修改一个块的时候,把块读到内存中,commit后,WAL写进程会触发写,把修改的块写到WAL日志文件,如果再往这个块中插入一条数据,数据缓冲区里面的块有两条数据了,再次commit后,PG会把…