Docker 2025/2/24

news/2025/2/26 5:06:06

用来快速构建、运行和管理应用的工具。帮助部署。

快速入门

代码略

解释

docker run :创建并运行一个容器,-d是让容器在后台运行
--name mysql :给容器起个名字,必须唯一
-p 3306:3306 :设置端口映射
-e KEY=VALUE :是设置环境变量
mysql :指定运行的镜像的名字

Docker基础

常见命令

操作镜像、容器

docker ps :查看docker中的镜像状态
docker ps --format "table..(不写了)" :查看docker中的镜像特定状态
root可以用~代替
自己起命令别名修改root下的.bashrc
source ~/.bashrc :命令别名生效
docker exec -it nginx bash :连接nginx容器 用命令行交互

数据卷挂载

数据卷volume是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。

创建数据卷对应的目录,固定目录/var/lib/docker/volumes

要让容器的目录和数据卷的目录做挂载。

可见,数据卷是容器目录和宿主机目录之间的桥梁。

可以实现宿主机目录和容器目录间的双向绑定,双向映射。修改宿主机里的文件,容器内也会修改;反之也可以。

下面是有关数据卷的命令:

docker volume --help :查看所有命令帮助信息

-----
使用-v挂载
挂载的动作必须在docker run命令时进行
如果容器已经创建没法挂载
如果创建容器时挂载的数据卷不存在,会自动创建
-----

docker rm -f nignx :删除原来的
docker run -d --name nginx -p 80:80 -v html:usr/share/nginx/html nginx :-p是端口映射 -v数据卷和容器目录的挂载,前面数据卷名字,后面目录
docker ps :看
docker volume ls :查看数据卷的列表
docker volume inspect html :展示卷的详细信息
ll :查看
cat :查看
vi :修改

本地目录挂载

docker volume inspect html :查看某个数据卷的详情,其中html是数据卷的名字
docker inspect xxx :查看容器xxx的详情

-----
docker run -v 本地目录:容器内目录   可以完成本地挂载本地目录必须以/或./开头,如果以名称开头,会被识别为数据卷而非本地目录
-----

Mysql有匿名卷,不建议用,挂载位置太深不方便迁移,建议自己挂载到自己设置的目录,持久保存,不易丢失

 

自定义镜像

镜像就是包含了应用程序本身、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。

Dockerfile是一个文本文件,其中包含一个个指令,用指令来说明要执行什么操作来构建镜像, 将来docker可以据此帮我们构建镜像。(总之Dockerfile构建镜像)

docker build -t docker-demo . :构建镜像
docker run -d --name dd -p 8080:8080 docker-demo
运行 -d后台运行 --name起个名字 --p端口映射 最后写镜像名字docker-demo
docker logs -f dd :查看日志,dd是容器

 

网络

在安装docker时,docker就会在虚拟机创建一张虚拟的网卡docker0,并且会给这个网卡创建一个虚拟的网桥。

docker inspect 容器名 :查看发现各个容器ip最后一个数不一样

 加入自定义网络的容器才可以通过容器名互相访问,命令如下:

docker network ls :查看
docker network create heima :创建自己的网络heima
ip addr :查看
docker network connect heima mysql :heima网络名 mysql容器docker inspect mysql :查看mysql容器
docker network connect heima dd :连容器
docker rm -f dd :删dd容器
docker run -d --name dd -p 8080:8080 --network heima docker-demo
在创建容器那一刻直接加入网络
docker inspect dd :查看dd
docker exec -it dd bash :进入dd容器bash
ping mysql(可以ping通)
ping nginx(不在这个网桥,访问不通)

总结:两个容器加入同一个网络,他们就可以用容器名互相访问了(前提必须是自定义网络)。 

项目部署

DockerCompose

下图右边是DockerCompose,还有网络hmall也对应忘记划了。

DockerCompose命令:

docker compose up -d :一键启动,加-d后台运行
docker compose ps :查看这个项目下的所有进程
docker compose down :移除不玩了
docker network ls :查看网络,观察到也被移除了


http://www.niftyadmin.cn/n/5867992.html

相关文章

Java入门级小案例:网页版简易计算器

网页版简易计算器 目录 网页版简易计算器需求&#xff1a;代码实现&#xff1a;效果显示 需求&#xff1a; 用HTML、CSS、JS进行书写一个具备一定功能的简易计算器。 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta cha…

keycloak - 开发环境的配置持久化

keycloak - 开发环境的配置持久化 前情提要&#xff1a; Keycloak - docker 运行 & 前端集成 本来是想顺便试一下 Okta 集成的&#xff0c;但是发现 Okta 没有本地的 docker 镜像&#xff0c;他们毕竟是做 Identity as a service……算了…… 更新后的 docker compose 如…

zookeeper从入门到精通

一、入门基础 1.1 什么是 ZooKeeper ZooKeeper 是一个开源的分布式协调服务&#xff0c;由雅虎创建&#xff0c;后成为 Apache 的顶级项目。它为分布式应用提供了高效、可靠的协调服务&#xff0c;例如统一命名服务、配置管理、分布式锁、集群管理等。ZooKeeper 的数据模型类…

网络安全实入门| 剖析HTTP慢速攻击(Slowloris)与Nginx防护配置

一、HTTP慢速攻击的核心原理 HTTP慢速攻击&#xff08;如Slowloris&#xff09;是一种应用层拒绝服务攻击&#xff08;DoS&#xff09;&#xff0c;其核心在于合法但缓慢地占用服务器资源&#xff0c;导致正常请求无法被处理。攻击者通过以下方式实现目标&#xff1a; 协议漏洞…

计算机视觉算法实战——文档扫描与 OCR(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ 一、领域简介✨✨ 文档扫描与 OCR&#xff08;Optical Character Recognition&#xff09; 是计算机视觉的核心应用之一&#xff0c;旨在将物…

【行业解决方案篇五】【DeepSeek智慧城市:交通流量预测系统】

一、为什么红绿灯总和你作对? 早高峰的十字路口,左转车道排了200米,直行车道却空荡荡——这不是交管局的阴谋,而是传统交通管理系统就像用"算盘预测股票",根本处理不了21世纪的海量数据。DeepSeek的交通流量预测系统,则像是给城市装上了"预知未来的望远镜…

vue3 Props的使用

Props是什么&#xff1f; 官方地址&#xff1a;Props | Vue.js 在 Vue 中&#xff0c;props 是父组件向子组件传递数据的一种机制。 props 是子组件中定义的自定义属性&#xff0c;父组件通过这些属性向子组件传递数据。 它们是单向数据流的一部分&#xff0c;意味着数据只能…

【NLP 23、预训练语言模型】

人类发明后悔&#xff0c;来证明拥有的珍贵 —— 25.1.15 Bert的优势&#xff1a;① 预训练思想 ② Transformer模型结构 一、传统方法 VS 预训练方式 Pre-train&#xff1a; ① 收集海量无标注文本数据 ② 进行模型预训练&#xff0c;并在任务模型中使用 Fine-tune&#xff1a…