Docker

1.docker概念

  • Docker 是一个开源的应用容器引擎

  • 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上

  • 容器是完全使用沙箱机制,相互隔离

  • 容器性能开销极低

  • Docker总的来说是一种容器技术,解决软件跨环境迁移的问题

2 .安装docker

官网:https://www.docker.com

 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

3 .docker架构

 

 

 

  • 镜像(Image):Docker 镜像(Image),就相当于是 一个 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容 器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心, 用来保存镜像。

4. 配置 Docker 镜像加速器

(1):从docker hub(https://hub.docker.com/)上下载,但是很慢

(2):配置镜像加速器

 ①:USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn

 ②:  阿里云(https://www.aliyun.com/

 ③:  腾讯云

 ④:  网易云

下面是阿里云的镜像像加速器:

只需要将里面的内容拷下来在命令窗口执行一下就可以了

 查看文件    cat/etc/docker/daemon.json

5 .docker命令-基于CentOS7

 启动Docker服务:systemctl start docker

 查看状态: systemctl status docker

 停止Docker服务: systemctl stop docker

 重启Docker服务: systemctl restart docker

 开机启动Docker服务: systemctl enable docker 

 启动完Docker后,查看状态如图:

停止后查看状态:

6.Docker 镜像相关命令

查看本地所有镜像: docker iamges 

在远程仓库中搜索镜像: docker search  镜像名称

拉取远程仓库中的镜像: docker pull 镜像名称:版本号 ,如果不指定版本号,默认是最新的版本latest

当我们在拉取时不知道版本,这时可以去(https://hub.docker.com)中找;

删除本地镜像: docker rmi 镜像id  删除指定的本地镜像 

删除所有的本地镜像: docker rmi 'docker images -q'

7.Docker容器相关命令

查看正在运行的容器:docker ps 

查看所有容器(不管运行还是关闭状态): docker ps -a

创建并启动容器:docker run 参数

• -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。

• -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.数据卷容器

 

 

 

posted @   超级大菜鸡  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示