栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker容器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker容器

docker基础操作
        • docker镜像和容器的区别
    • docker基础操作
      • 1使用docker对镜像的操作
          • 1根据自己的需求,查找需要的镜像。以redis为例:
          • 2拉取相应的镜像,如果不指定版本,则默认拉取最新的版本
          • 3查看下载好的镜像
          • 4删除指定的镜像
      • 2针对镜像创建容器
          • 1前台方式创建容器并启动
          • 2关闭开启的容器
        • 以后台的方式创建并启动容器
          • 查看正在运行的容器
          • 查看所有的容器(不管是运行的还是不运行的)
          • 进入容器并使用命令行
          • 对于已经创建的容器,进行启动
            • 删除容器
      • 将镜像打包迁移到其他服务器上使用
        • 1将容器保存为镜像
        • 2将镜像进行压缩打包,准备到其他机器进行部署
        • 3将打包的redis.tar进行恢复成镜像
      • 3DockerFile的介绍
      • 4从私有仓库中取出镜像

docker镜像和容器的区别

首先需要理解docker镜像和容器的区别:
可以将镜像理解为一个类,是一个只读的文件。而容器可以理解为对象,是创建在镜像之上的一个可读可写的文件,关系是可以由一个类创建出多个对象。

docker基础操作

使用docker的一般步骤:一般分为两类,一种是对镜像的操作,另一种是对容器的操作。

1使用docker对镜像的操作 1根据自己的需求,查找需要的镜像。以redis为例:
docker search redis


可以看到有很多的redis版本,需要下载自己需要的

2拉取相应的镜像,如果不指定版本,则默认拉取最新的版本
docker pull 名称:版本

3查看下载好的镜像
docker images


可以看到我下载的指定版本的redis和没指定版本的redis,就是下载最新的版本

4删除指定的镜像
docker rmi 镜像名称或者id

可以看到虽然两个镜像名称都是redis但是其编号id是唯一的,因此可以操作id来删除,这里我删除掉最新的
可以看到镜像种已经没有指定的redis版本了。

2针对镜像创建容器

因为在不使用容器技术,在linux系统上启动redis时,分为后台启动和前台启动,当后台启动时,可以做其他操作,同理关于镜像的启动也分为命令行启动(前台启动)和后台启动方式。

1前台方式创建容器并启动
docker run -it --name=redis -p 6379:6379 redis:6.0.6

其中
-i 表示开启容器
-t 表示容器运行后进入命令行的模式(应该可以理解为前台启动吧。。。)
–name 表示当前容器开启后的名字
–p指定端口的映射 将linux宿主机的端口映射到容器的端口,下次访问宿主机的端口时,可以直接连接到容器
最后一个代表用哪一个镜像创建容器。因此需要指定版本号!


前台启动后就什么也操作不了,所以想关掉当前容器的话,需要在开启一个xshell连接,然后从新的窗口关闭当前服务

左边一个代表我开启的新的窗口,新开启一个窗口之后

2关闭开启的容器

在新建的窗口中,关闭

docker stop redis(容器名称)

回到2窗口,可以看到,当前容器已经停止了

以后台的方式创建并启动容器
docker run -id --name=redisBack -p 6379:6379 redis:6.0.6


可以看到,一个镜像可以开启多个容器,前提是只要容器的名字不相同,当一个镜像开启相同名字的镜像时,会报错!如下

因为已经有容器了,可以简单理解为:
如果把镜像看成类的话,可以实例化多个对象(容器),但是最起码对象名不能一样吧!

查看正在运行的容器

后台启动之后,没有任何提示,你也不知道有没有启动,所以查看当前正在运行的容器

docker ps

查看所有的容器(不管是运行的还是不运行的)
docker  ps -a


显示的有点乱,(其他的信息是我其他的容器们可以忽略,)那是因为redisBack正在启动中,设计到了端口的映射,多加了一点字段,但是红圈位置可以看出,确实有一个镜像开启了两个容器,并且容器的名字不相同!

进入容器并使用命令行

像mysql等,可以在其内部执行,当已经是后台启动的容器可以使用一下命令

docker exec -it redisBack /bin/bash

然后可以退出容器,使用exit命令

对于已经创建的容器,进行启动

先将redisBack容器关闭,在启动

根据状态可以查看当前名为redisBack的容器,开启又关闭了!

删除容器

现在不想使用容器了,所以需要进行删除,可以根据容器名称和容器的id进行删除

docker rm redis

可以看出已经删除了名为redis的容器。

将镜像打包迁移到其他服务器上使用

因为docker的开发理念就是可以是环境配置简单,直接就可以在另一台机器上运行不需要进行重新的环境配置,因此这一部分介绍一下将创建好的容器打包成镜像,供其他的机器使用

1将容器保存为镜像
docker commit redisBack myredis

可以看出已经有对应的镜像

2将镜像进行压缩打包,准备到其他机器进行部署

还有一种情况是将redis进行打包进行传输

docker save -o myredis.tar myredis

3将打包的redis.tar进行恢复成镜像

先将当前机器的redis镜像进行删除,然后再通过这个tar包进行恢复,来模仿当前redis拷贝到其他机器的过程。

docker load -i myredis.tar

-i表示input
也可以根据这个解压的镜像创建一个新的容器!从而实现了镜像的打包和迁移。

3DockerFile的介绍

dockerfile是由一系列的命令和参数构成的脚本,这些命令应用于基础镜像并最终创建出一个新的镜像。对于开发人员来说,可以为团队开发提供一个完全一致的开发环境

4从私有仓库中取出镜像

1.已经安装了docker
2.更改docker的配置文件(/etc/docker/daemon.json)中加入私有仓库的地址,来信任当前私有仓库
3.直接拉取自己需要的镜像即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号