Linux系统中Docker的使用

虚拟化的定义

虚拟化是一种资源管理技术,将计算机上的各种实体资源,如:服务器,网络,内存,存储进行抽象,转换后呈现出来,打破实体结构之间不可切割的障碍,使用户以更好的组态使用资源。
Vm可以虚拟化。

容器技术:在计算机上虚拟出独立的一块空间。
Vm虚拟化:需要虚拟整个计算机
容器技术:是基于物理计算机内核
容器虚拟化:

  1. 容器可以制造一个权限隔离监牢。

./当前目录 …/上一层

  1. 执行效率高,容器技术,在计算机系统当中只是一个进程,使用 方便,效率更高
  2. 方便部署,更容易保持程序运行环境的一致性。

Docker组件
Linux系统中Docker的使用_第1张图片
如上图所示:

  • Docker是一个c/s结构
  • Server 服务
  • Server 端存储镜像
  • Client 客户
  • Client 进行镜像的下载,使用,上传
  • Image 镜像

下面是个模块的说明:

镜像是构建docker的基石,docker把应用程序及依赖关系包,打包到镜像文件当中,通过这个文件生成docker容器,image可以说是容器的模板。

Docker镜像是有文件系统叠加而成的,底端是一个文件引导系统,在容器运行起来的时候,引导系统被卸载,留出更多的空间给磁盘镜像使用。

Registry 注册中心位于服务端,用来保存用户构建的镜像,registty分为公有私有两种,公有的叫做docker hub,我们可以注册账号,分析镜像,但是docker hub是外网,下载镜像很慢,建议各位搭建自己registry。但是一定要注意,直接保存镜像文件的不是registry,而是 repository(仓库),一个注册中心(registry)可以有多个仓库 (repository),一个仓库(repository)里面有多个镜像(image)。

容器用来运行镜像的系统或者程序,容器基于镜像创建模板,然后运行,容器是基于镜像启动的,容器可以运行一个或者多个进程。

容器具体讲:是一个镜像格式,一些列标准操作,一个执行环境。

Docker安装与基本使用

Docker借鉴了标准集装箱的概念。标准集装箱将货物形成大小的标准。
Linux系统中Docker的使用_第2张图片
Docker可以运行在windows上,linux上。Centos系统对docker支持友好,centos上docker运行稳定。其他系统,docker需要到官网下载,解压,安装。

Centos yum源自带docker,所以在centos上docker安装:

yum -y install docker

如果报错就进行如下处理:
Linux系统中Docker的使用_第3张图片
查看是否安装成功

yum list installed |grep docker

Linux系统中Docker的使用_第4张图片
启动docker

Docker 在centos当中是一个服务,所以启动的命令是:

systemctl start docker

Linux系统中Docker的使用_第5张图片
Docker 命令查看版本

docker version

Linux系统中Docker的使用_第6张图片

查看镜像

docker images

在这里插入图片描述
查看镜像出现的单词解析如下:

  • Repository 仓库
  • Tag 标签
  • Image id 镜像id
  • Created 创建时间
  • Size 镜像大小

下面来拉去第一个镜像

Docker pull   镜像名称

比如拉取MySQL8,0
Linux系统中Docker的使用_第7张图片
这个MySQL8.0默认的拉取源是国外网站,有时候无法拉取,这时候就需要修改修改docker源,这里修改成中国科技大学:

  1. 查看Docker配置文件
    Linux系统中Docker的使用_第8张图片
  2. 然后添加修改

在这里插入图片描述
3. 重新启动docker
在这里插入图片描述
4. 从新下载
Linux系统中Docker的使用_第9张图片

完成以上步骤后,进行下面的步骤:

  1. 启动镜像,查看,当前没有mysql服务
    在这里插入图片描述
  2. 检查网络
sysctl net.ipv4.ip_forward

在这里插入图片描述
如果不是net.ipv4.ip_forward= 1,进入 /etc/sysctl.conf下修改配置文件
在这里插入图片描述

  1. net.ipv4.ip_forward= 1添加到里面
    Linux系统中Docker的使用_第10张图片

  2. 然后重启网络

sysctl restart network

在这里插入图片描述

创建容器

docker create -it --name mysql8.0 mysql(镜像id) /bin/bash
  • i 交互式;
  • t 容器启动后会进入命令行;
  • i和t一起运行容器创建之后就能登录进去,并且分配一个伪终端
    例如创建镜像id为dadee7afee的容器
docker create -it --name mysql8.0 91dadee7afee /bin/bash

启动镜像

docker start -ai mysql8.0
  • a 将当前的输入/输出链接到容器上
  • i 将当前的输入链接到容器上

退出容器

exit

在这里插入图片描述

第二种方式:创建并启动容器

docker run -dit --name=mysql8.0 91daddee7afee /bin/bash

在这里插入图片描述

  • d 守护容器,容器当中的程序需要长期运行的时候,我们可以创建一个守护式的容器,就算exit也不会停止。
  • i 交互式
  • t 容器启动后会进入命令行,-i和-t一起运行容器创建之后就能登录进去,并且分配 一个伪终端

进入容器

Docker exec -it mysql8.0 /bin/bash
  • i 交互式
  • t 容器启动后会进入命令行;
  • i和t一起运行容器创建之后就能登录进去,并且分配一个伪终端。

/bin/bash进入执行的第一个命令

退出容器我们用exit

报错:Container 容器
在这里插入图片描述
容器没有启动导致的问题,非法关闭容器,或者开始没有启动容器

Docker start 容器
在这里插入图片描述
容器的常规管理
Container 容器
Docker container ls 列出运行的容器
在这里插入图片描述

Container ID       容器id
Image            镜像id
Command         命令
Created           创建时间
Status            状态
Up             启动状态
Exited       退出状态
Ports             端口/协议
Name             容器的名称

Docker container ls --all 列出所有的容器
在这里插入图片描述

dcoker container stop  容器id或者容器名称    停止运行容器
dcoker container start  容器id或者容器名称    开始运行容器

Linux系统中Docker的使用_第11张图片

docker container kill 容器id或者容器名称   杀死容器
docker container rm 容器id或者容器名称   删除容器

Linux系统中Docker的使用_第12张图片

首先,我们基于当前的容器进行了修改,比如:
我们首先创建了一个Ubuntu的容器,然后在容器当中安装了python3,安装了Django框架, 安装NGINX服务器,安装了mysql数据库,安装…其他的python web开发工具。然后将该容器修改完成的镜像进行打包然后提交:

docker commit [参数] 容器名 镜像名
Docker commit -m “这个时候我的docker镜像”

m 描述

提交docker镜像

1、注册docker账号
2、向docker库提交镜像
我们提交的是镜像,实际上是我们用户修改过的容器当中的镜像
1、Docker container ls -all 查看所有的容器
2、登录docker hub
docker login --username=username
Password:密码
successed
3、docker commit -m “镜像描述” -a“作者” 容器名称或者id 远程库的名字:上传到 docker hub上的名字
比如docker commit -m “docker测试提交镜像” -a “边进辉”
721b061fe45c bianjinhui/education:djangoTesting
4、docker tag 镜像id 远程库的名字:上传到docker hub上的名字
#将镜像,容器和远程库进行标识
docker tag 32260605cf7a bianjinhui/education:djangoTesting
5、docker push 远程库的名字:上传到docker hub上的名字
#将于远程库有标识关系的库提交
docker push bianjinhui/education:djangoTesting

你可能感兴趣的:(Linux系统)