Docker
- 2022 年 6 月 9 日
- 筆記
-
-
诞生于 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 //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/data_container redis:5.0 /bin/bash