docker容器

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.直接拉取自己需要的镜像即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值