Docker
-
-
诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
-
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上
-
容器是完全使用沙箱机制,相互隔离
-
1、yum 包更新到最新
yum update
2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
5、 查看docker版本,验证是否验证成功
docker -v
-
-
容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容 器可以被创建、启动、停止、删除、暂停等。
-
仓库(Repository)
• -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
• -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
• -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
• --name:为创建的容器命名。
后面再加上 /bin /bash参数后,就是启动并进入容器,退出容器也就关闭容器;-也称为交互式容器。
守护式容器:docker run -id --name=r2 redis:5.0
执行命令后会将容器id输出
进入容器: docker exec -it r2 /bin /bash , 通过-id创建的熔体 ,在exit退出时也不会关闭容器
启动容器:docker start 容器名称或容器id
停止容器: docker stop 容器名称或容器id
删除指定容器:docker rm 容器名称或容器id
删除所有容器: docker rm `docker ps -a -q`
查看容器信息:docker inspect 容器名称或容器id
8.Docker容器的数据卷
Docker 容器删除后,在容器中产生的数据也会随之销毁 ;
Docker 容器和外部机器可以交换文件
容器之间进行数据交互
外部机器是不能直接与容器进行通信,但是可以与宿主机进行通信,比如linux。
数据卷:
-
-
当容器目录和数据卷目录绑定后,对方的修改会立即同步
-
一个数据卷可以被多个容器同时挂载
-
• 容器数据持久化
• 外部机器和容器间接通信
• 容器之间数据交换
9.配置数据卷
创建启动容器时,使用-v参数 设置数据卷:docker run ... -v 宿主机目录(文件):容器目录(文件) ...
当没有这个目录时,会自动创建
例如run -it --name=r1 -v /root/data:/root/container_data elasticsearch:7.1.1 /bin/bash
进到此目录下创建个文件或时写点东西都会同步,同时打开两个连接查看
可以看到第一个窗口(宿主机)里的data先创建了 ‘20220611.txt’文件, 第二窗口(容器内)里的container_data会直接同步'20220611.txt'文件,在此文件里写东西,写完后,窗口一也能看到;宿主机的data文件夹和容器的container_data内容是同步的;当容器删除后,宿主机里的container_data依旧会存在,也就防止了,容器没了数据丢失的情况;下面操作看一下:
当我们再创建容器与宿主机的data目录挂载时,数据依旧同步到容器里,也就保证了数据的持久化;如果两个容器进行数据交换,只要让他们挂载同一个目录就行了;
10.数据卷容器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】