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
    评论
Docker容器是一种轻量级、可移植的虚拟化技术,用于在操作系统级别隔离应用程序和其依赖的运行环境。通过使用Docker容器,可以将应用程序及其所有依赖项打包到一个独立的、可移植的容器中,然后在任何支持Docker的环境中运行。 以下是一些常见的Docker容器相关概念和工具: 1. Docker镜像Docker Image):Docker镜像是一个只读的模板,包含了运行应用程序所需的所有文件和依赖项。可以通过Docker镜像创建Docker容器。 2. Docker容器Docker Container):Docker容器Docker镜像的运行实例。每个Docker容器都是相互隔离的,具有自己的文件系统、进程空间和网络接口。 3. Docker引擎(Docker Engine):Docker引擎是Docker的核心组件,负责管理和运行Docker容器。它包括了一个守护进程(dockerd)和一组命令行工具(docker命令)。 4. Docker Compose:Docker Compose是一个用于定义和管理多个Docker容器的工具。通过编写一个YAML文件来描述应用程序的各个组件及其依赖关系,然后使用docker-compose命令来启动、停止和管理这些容器。 5. Kubernetes:Kubernetes是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。它可以与Docker结合使用,提供了更高级的容器编排和管理功能。 6. Docker Hub:Docker Hub是一个公共的Docker镜像仓库,可以从中获取各种预构建的Docker镜像。同时,也可以将自己构建的镜像推送到Docker Hub上进行分享和存储。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值