草庐IT

Docker镜像及容器基本操作命令

忙碌滴比特流 2023-10-27 原文

目录

一、Docker镜像操作

1、搜索镜像:docker search 关键字

2、拉取镜像:docker pull 镜像名称[:tag(标签)]

3、 查看所有镜像:docker images [选项]

4、根据镜像ID号获取镜像详细信息:docker inspect 镜像ID

5、为本地镜像添加新的标签:docker tag 名称 :[标签] 新名称:[新标签]

6、 删除镜像:docker rmi 仓库名称:标签 或者 docker rmi 镜像ID

7、存出镜像和存入镜像

7.1、存出镜像 docker save -o 存贮的文件名 存储的镜像

7.2、导入镜像 docker load < 存出的文件

8、上传镜像 docker push 仓库名称:标签

9、删除本地所有镜像 docker rmi `docker images -q`

二、容器操作

1、容器的创建与启动

1.1、容器的创建: docker creat  [选项] 镜像 运行的程序

1.2、容器的启动:docker start 容器的ID

1.3、创建并启动容器:docker run  [选项] 镜像名 /bin/bash

                  ps: docker run [参数] /bin/bash

2、查看当前运行状态的容器(当前为UP状态) docker ps

3、查看所有容器的包括正在运行和停止运行的容器   docker ps -a​编辑

4、终止容器运行:docker stop/start/restart 容器ID/名称

5、容器的进入  docker exec [选项] 容器ID/名称

6、容器的导出 :docker export 容器ID/名称 > 文件名 

7、 容器的导入:cat 文件名 | docker improt -生成的镜像名称:标签

8、 删除容器: docker rm 容器ID/名称

9、查看版本:docker version 

10、检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点): docker info

11、容器提交为镜像:docker commit [选项] [容器ID/容器名] [仓库名:标签]

12、查看网络列表:docker network ls

13、自建bridge网络 :docker network creat

14、复制:docker cp 

14.1、把容器内的文件复制到物理机

14.2、把物理机的文件复制到容器中


一、Docker镜像操作

1、搜索镜像:docker search 关键字

例如:搜索关键字为lamp的镜像

 2、拉取镜像:docker pull 镜像名称[:tag(标签)]

ps:(加标签和不加标签的区别)①、docker pull redis # 默认下载最新版本

                                                    ②、docker pull redis:5.0 # 下载指定版本

3、 查看所有镜像:docker images [选项]

选项说明
-a列出所有镜像
-q只显示镜像ID

4、根据镜像ID号获取镜像详细信息:docker inspect 镜像ID

5、为本地镜像添加新的标签:docker tag 名称 :[标签] 新名称:[新标签]

6、 删除镜像:docker rmi 仓库名称:标签 或者 docker rmi 镜像ID

PS:当删除的镜像有标签时,当删除其中之一,并不影响镜像文件,但只剩最后一个镜像的话请慎删,会彻底删除

7、存出镜像和存入镜像

7.1、存出镜像 docker save -o 存贮的文件名 存储的镜像

需要把镜像保存成本地文件,这一过程叫做存出镜像

7.2、导入镜像 docker load < 存出的文件

把上面存出的文件导入到镜像库中,这一过程叫导入

8、上传镜像 docker push 仓库名称:标签

9、删除本地所有镜像 docker rmi `docker images -q`

二、容器操作

1、容器的创建与启动

1.1、容器的创建: docker creat  [选项] 镜像 运行的程序

常用选项说明
-i让容器的输入保持打开
-t让docker分配一个伪终端

例如:创建一个容器nginx

1.2、容器的启动:docker start 容器的ID

1.3、创建并启动容器:docker run  [选项] 镜像名 /bin/bash

选项说明
-d后台运行容器并返回容器ID,即守护式容器
-i以交互模式运行容器,通常与-t同时使用
-t 为容器重新分配一个伪输入终端
-- name容器名字
-P(大写)随机端口映射,容器内部端口随机映射到主机的端口
-p(小写)指定端口映射,格式:主机(宿主)端口:容器端口
--volume,-v绑定一个卷

例如1:使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx

例如2: 使用镜像nginx:nginx以后台模式启动一个容器,并将容器的80端口映射到主机随机端口

例如3: 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data

当利用docker run 来创建容器时,docker在后台标准运行过程是这样的:

检查本地是否存在指定的镜像,当镜像不存在时,会从公共仓库下载;如过本地有,直接加载。

ps: docker run [参数] /bin/bash

docker run  包含docker creat和docker start 两条命令的职能

-i:保持容器运行。通常与-t同时使用,加入-it这两个参数之后,容器创建后自动进入容器中,退出容器后,容器自动关闭

-t:为容器分配一个伪终端,通常与-i同时使用

-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec进入容器。退出后,容器不会关闭

-it 创建的容器一般称为交互式容器(特点: exit退出容器, 容器立马自动关闭)

-id创建的容器一般称为守护式容器(特点: 以守护(后台)模式启动容器, 不会进入容器)

2、查看当前运行状态的容器(当前为UP状态) docker ps

选项说明
-a 显示所有的容器,包括未运行的
-q只显示运行状态的容器ID号
-aq显示所有的容器,包括未运行的,只显示他们的容器ID号
-s显示容器的大小(size)

3、查看所有容器的包括正在运行和停止运行的容器   docker ps -a

4、终止容器运行:docker stop/start/restart 容器ID/名称

5、容器的进入  docker exec [选项] 容器ID/名称

-i :表示让容器的输入保持打开,

-t:表示让docker分配一个伪终端

-c:免交互直接在容器内执行命令

使用 docker exec方式进入容器,前提是容器必须是开启状态

6、容器的导出 :docker export 容器ID/名称 > 文件名 

用户可以讲任何一台容器从一台机器迁移到另一台机器上:

将创建好的容器——>导出为文件;文件——>导入到其他机器再做处理

7、 容器的导入:cat 文件名 | docker improt -生成的镜像名称:标签

8、 删除容器: docker rm 容器ID/名称

PS : docker rm 容器ID/名称——》可以删除一个禁止的容器

        docker rm  -f 容器ID/名称——》可以删除一个正在运行的容器

9、查看版本:docker version 

[root@zwb_docker ~]# docker version 
Client: Docker Engine - Community
 Version:           20.10.18
 API version:       1.41
 Go version:        go1.18.6
 Git commit:        b40c2f6
 Built:             Thu Sep  8 23:14:08 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.18
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.6
  Git commit:       e42327a
  Built:            Thu Sep  8 23:12:21 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

主要分为client端和server端:client端指的是命令行;server端指的是内核

10、检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点): docker info

11、容器提交为镜像:docker commit [选项] [容器ID/容器名] [仓库名:标签]

语法格式:

docker commit [选项] [容器ID或容器名] [仓库名:标签]

选项说明
-a修改人
-m备注
-c使用dockerfile指令来创建镜像
-p在commit时,将容器暂停

例如:将容器ID为9ca35195df5a,保存为新的镜像,并添加提交人的说明信息。

12、查看网络列表:docker network ls

13、自建bridge网络 :docker network creat

14、复制:docker cp 

14.1、把容器内的文件复制到物理机

语法格式:docker cp 容器ID:绝对路径 (物理机)绝对路径

14.2、把物理机的文件复制到容器中

语法格式:docker cp (物理机)绝对路径 容器ID:绝对路径

15、暂停容器中的所有进程:docker pause

16、查看容器中运行的进程信息: docker top

17、显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等

docker stats

有关Docker镜像及容器基本操作命令的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  3. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  4. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  5. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  6. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  7. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  8. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  9. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  10. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

随机推荐