Docker基本操作

1.关于对镜像和容器的理解

Docker镜像好比操作系统的镜像(iso)
Docker容器好比安装完成的操作系统
# docker镜像文件运行起来之后就是我们所说的docker容器

那到底什么是Docker镜像呢?
Docker 镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引 导系统,即 bootfs,这很像典型的 Linux/Unix 的引导文件系统。Docker 用户几乎永远不会和 引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系 统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker 容器启动是需要一些文件的, 而这些文件就可以称为 Docker 镜像。

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。

为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。

2.Docker镜像操作

列出镜像

docker image ls -a

docker列出镜像

  • REPOSITORY:镜像所在的仓库名称
  • TAG:镜像标签
  • IMAGEID:镜像ID
  • CREATED:镜像的创建日期(不是获取该镜像的日期)
  • SIZE:镜像大小

为了区分同一个仓库下的不同镜像,Docker 提供了一种称为标签(Tag)的功能。每个 镜像在列出来时都带有一个标签,例如latest、 12.10、12.04 等等。每个标签对组成特定镜像的一 些镜像层进行标记(比如,标签 12.04 就是对所有 Ubuntu12.04 镜像层的标记)。这种机制 使得同一个仓库中可以存储多个镜像。— 版本号

在运行同一个仓库中的不同镜像时,可以通过在仓库名后面加上一个冒号和标签名 来指定该仓库中的某一具体的镜像,例如 docker run –name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明从镜像 Ubuntu:12.04 启动一个容器,而这个镜像的操 作系统就是 Ubuntu:12.04。在构建容器时指定仓库的标签也是一个好习惯。

拉取镜像
Docker维护了镜像仓库,分为共有和私有两种,共有的官方仓库Docker Hub(https://hub.docker.com/)是最重要最常用的镜像仓库。私有仓库(Private Registry)是开发者或者企业自建的镜像存储库,通常用来保存企业 内部的 Docker 镜像,用于内部开发流程和产品的发布、版本控制。

  • 要想获取某个镜像,我们可以使用pull命令,从仓库中拉取镜像到本地,如
 docker image pull library/hello-world

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。

 docker image pull hello-world

删除镜像

docker image rm 镜像名或镜像id
如:
docker image rm hello-world

正在运行容器的镜像是无法删除的
这里写图片描述

3.Docker容器操作

创建容器

docker run [option] 镜像名 [向启动容器中传入的命令]

常用可选参数说明:

-i 表示以“交互模式”运行容器
-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
--name 为创建的容器命名
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
-e 为容器设置环境变量
--network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同

交互式容器

例如,创建一个交互式容器,并命名为mycentos
docker run -it --name=mycentos centos /bin/bash
在容器中可以随意执行linux命令,就是一个ubuntu的环境,当执行exit命令退出时,该容器也随之停止。

守护式容器

例如,创建一个守护式容器,并命名为mycentos2
docker run -dit --name=mycentos2 centos
创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。

进入已运行的容器

docker exec -it 容器名或容器id 进入后执行的第一个命令
例如:docker exec -it mycentos2 /bin/bash

查看容器

列出本机正在运行的容器
docker container ls
列出本机所有容器,包括已经终止运行的
docker container ls --all

停止与启动容器

停止一个已经在运行的容器
docker container stop 容器名或容器id

启动一个已经停止的容器
docker container start 容器名或容器id

kill掉一个已经在运行的容器
docker container kill 容器名或容器id

删除容器

docker container rm 容器名或容器id

4.将容器保存为镜像

通过如下命令将容器保存为镜像

docker commit 容器名 镜像名

5.镜像备份与迁移

可以通过save命令将镜像打包成文件,拷贝给别人使用

docker save -o 保存的文件名 镜像名

例如:docker save -o ./centos.tar centos

对方在拿到镜像文件后,可以通过load方法,将镜像加载到本地

docker load -i ./centos.tar
  • 9
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
docker基本操作包括镜像操作和容器操作。在镜像操作方面,可以使用docker命令进行搜索镜像、下载镜像、查看镜像列表、获取镜像信息、添加镜像标签、删除镜像等操作。可以使用docker search命令搜索镜像,使用docker pull命令下载镜像,使用docker images命令查看镜像列表,使用docker inspect命令获取镜像信息,使用docker tag命令添加镜像标签,使用docker rmi命令删除镜像。此外,还可以使用docker save/load命令进行镜像的导出和导入。在容器操作方面,可以使用docker命令进行查询容器运行状态、创建容器、启动容器、进入容器、导出容器、删除容器等操作。可以使用docker ps命令查询所有容器运行状态,使用docker create命令创建容器,使用docker start命令启动容器,使用docker exec命令进入容器,使用docker export命令导出容器,使用docker rm命令删除容器。此外,还可以使用docker exec命令连接到容器内部,进行操作,可以通过exit退出容器,不影响容器运行。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [docker镜像与容器基本的基本操作](https://blog.csdn.net/m0_51160032/article/details/122444960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [docker基本操作](https://blog.csdn.net/weixin_55614692/article/details/119510577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值