Docker

当我们利用Docker 安装应用时,Docker会自动搜索并下载应用镜像。

镜像

镜像不仅包含应用本身,还包含应用运行所需要的环境,配置,系统函数库。Docker会在运行镜像时创建一个隔离环境,称为容器

运行过程

docker run: 创建并运行一个容器

-d是让容器在后台运行

--name mysql: 给容器起个名字,必须唯一

-p 3306:3306:设置端口映射

为什么映射

创建容器放到宿主机,而宿主机是对外隔离的,我们没办法直接连接到容器,但是我们可连接到宿主机,所以把端口映射到宿主机上即可

-p 第一个参数便是宿主机的

-e KEY=VALUE 设置环境变量

最下面的mysql :指定运行的镜像的名字

镜像名称

镜像名称一般分成两个部分组成: [repository]:[tag]

  1. 其中repository就是镜像名

2.tag是镜像的版本

在没有指定tag时,默认时latest,代表最新版本的镜像

docker pull 拉取镜像

查看本地镜像

docker images

保存本地称为压缩文件

docker save [options] image[image...]

比如把nginx 保存在本地

docker save -o nginx.tar nginx:latest

这个必须加版本

查看本地压缩包

ll

删除镜像

加入删除nginx,指定版本

docker rmi nginx:latest

从本地压缩包中下载

docker load -i 压缩包名称

这里还有加不加 -q的区别

不加-q

加-q

我们发现没有那么话语了

停掉容器

docker stop 容器名

停掉容器不是删除

我们再次执行 docker ps -a

我们发现容器依旧存在,只不过状态是exited

切记,不要进行 docker run 那样会再次创建一个容器,而停掉容器不是删除容器

至于再次启动 docker start 容器名

docker logs 容器名 查看容器日志

docker logs -f 容器名 则是一直查询下去,不会停下来,ctrl+c 才能停下

docker exec -it nginx bash

这个是进入什么什么容器,我们的容器放在了一个隔离环境,但是我们可以进去,执行上述命令即可, bash则是用什么交互,bash交互就是和虚拟机的形式一样

删除容器

dockers rm 容器

docker rmi 镜像 删除镜像

不过删除容器前,要先停掉容器,要不然会报错

当然也可已直接删除 ,不过要加 -f -f表示强制删除

起别名

首先 我们 先进入 docker exec -it nginx容器名 bash

然后从官网找到文件,但是我们发现自己改不了,怎么解决

数据卷

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

|-----------------------|------------|-----------------------|
| 命令 | 说明 | 文档地址 |
| docker volume create | 创建数据卷 | docker volume create |
| docker volume ls | 查看所有数据卷 | dockers volume ls |
| docker volume rm | 删除指定数据卷 | docker volume rm |
| docker volume inspect | 查看莫格数据卷的详请 | docker volume inspect |
| docker volume prune | 清除数据卷 | docker volume prune |

在执行docker run命令时,使用 -v 数据卷:容器内目录 可以完成数据卷挂载

当创建容器时,如果挂载了数据卷且数据卷不存在,会自定创建数据卷

假如我们 docker run *** -v html: ...

那么我们宿主机目录就会和html进行映射,而我们创建数据卷时html就和容器目录进行映射,所以简介的进行了映射

自定义镜像:

这里容器是不是能通过docker桥互相连接,但是这不好

当容器和docker桥连接时,docker会给他一个ip地址,只要ip地址在docker允许的范围,ip就会发生变化,当发生变化时,再通过那个ip地址连接到那个容器时,就会出现一些情况,所以不建议

那么怎么解决呢,就是通过容器名,因为容器名不会变

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

|---------------------------|--------------|------------------------|
| 命令 | 说明 | 文档地址 |
| docker network create | 创建一个网络 | docker network create |
| docker network ls | 查看所有网络 | docker network ls |
| docker network rm | 删除指定网络 | docker network rm |
| docker network prume | 清除未使用的网络 | docker network prune |
| docker network connect | 使指定容器连接加入某网络 | docker network connect |
| docker network disconnect | 是指定容器连接离开某网络 | docker network connect |
| docker network inspect | 查看网络详细信息 | docker network inspect |

相关推荐
恒创科技HK2 小时前
海外服务器回国线路对比,带宽选择指南
运维·服务器
China_Yanhy2 小时前
运维日记 - 猛男的AI拓荒录:Fabric (GitHub: danielmiessler/fabric) —— 让 AI 回归 Unix 哲学的终端神器
运维·人工智能·fabric
柒.梧.2 小时前
从0到1理解K8s:为什么用、怎么设计、如何搭建
云原生·容器·kubernetes
wbs_scy2 小时前
Linux 基础 IO 初步解析:从 C 库函数到系统调用,理解文件操作本质
linux·运维·服务器
袁煦丞 cpolar内网穿透实验室2 小时前
Portainer可视化玩转 Docker 全流程。cpolar 内网穿透实验室第 737 个成功挑战
运维·docker·容器·远程工作·内网穿透·cpolar
广州服务器托管2 小时前
WIN11中将控制面板固定到开始菜单的方法
运维·开发语言·windows·计算机网络·可信计算技术
每日学点SEO2 小时前
如何判断网站质量低 & 遭受机器人流量攻击
运维·人工智能·深度学习·机器学习·搜索引擎
暴力求解2 小时前
Linux---磁盘与文件系统(三)
linux·运维·服务器
低保和光头哪个先来2 小时前
TinyEditor 篇3:拖拽图片到编辑器并同步上传至服务器
运维·服务器·编辑器