首页 > 其他分享 >docker基本使用加载和输出

docker基本使用加载和输出

时间:2022-10-20 14:48:05浏览次数:83  
标签:输出 容器 sudo export 镜像 docker save 加载

前言

这是个人的docker使用总结

安装docker

版本号大家可以自己按照自己系统来

  • 加载docker镜像
sudo docker load   <  test.dockerimage
  • 查看本机的镜像
    使用 docker images 或者 docker image list 命令查看本机所有的镜像。

  • 初次从镜像启动容器

启动有很多种方式,run exec 等,这里使用了run,并且用了端口映射,希望别的设备进行访问。

sudo docker run -it -d -p 3033:22 f81f02c7ce16[镜像] /bin/bash  

Docker-端口映射可使用-p、-P来实现:
-p指定要映射的端口,一个指定端口上只可以绑定一个容器
-P将容器内部开放的网络端口随机映射到宿主机的一个端口上

例如:将容器指定端口随机映射到宿主机一个端口上,docker run -P 80 -it ubuntu /bin/bash
将容器指定端口指定映射到宿主机的一个端口上,docker run -p 8000:80 -it ubuntu /bin/bash

具体参考可以看这篇:https://www.jianshu.com/p/b92d4b845ed6

-d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec。
具体内容可以参考这篇文章:https://yeasy.gitbook.io/docker_practice/container/daemon

  • 查看本机的容器
    使用 sudo docker ps -a 命令查看本机所有的容器
  • 启动和关掉已经存在的容器

启动容器 sudo docker start c1b6333e7ee2[容器] 关闭容器sudo docker stop c1b6333e7ee2[容器]

  • 不杀掉容器的情况下退出

进入容器之后,我们会有时候需要退出,这时候使用ctrl + d退出,容器也要死掉,这时候有两种方式可以退出不让容器死掉:

  1. 不使用ctrl + d 使用组合命令,ctrl + p + q

还有一种方式ctrl + d退出不杀掉容器
2.启动时候使用 exec,例如:先使用sudo docker start c1b6333e7ee2[容器] , 再使用 sudo docker exec -it c1b6333e7ee2[容器] /bin/bash 进入一个已经启动容器,这时候我们使用ctrl + d退出,容器是不会被杀掉的。

  • 按照目前的容器创建自己的image

sudo docker commit -m="update" -a="羽林君" 289e963a60ad[容器] test:v2 新建一镜像

  • 本地镜像的导出、导入(export、import、save、load)
  1. 使用 exportimport
    这两个命令是通过容器来导入、导出镜像.

(1) export 导出镜像 ,使用 docker export 命令根据容器 ID 将容器的文件系统归档信息输出到文件。

sudo docker export cd06d0c64c04 > test.tar
sudo docker export -o test.tar test

上面命令执行后,可以看到文件已经保存到当前的 docker 终端目录下。

(2) 导入镜像 使用 docker import 命令则可将这个镜像文件导入进来。

sudo docker import  new_test <  test.tar
sudo docker import  test.tar  test

从上面的命令可以看出,docker import将container导入后会成为一个image,而不是恢复为一个container。
此外,也可以通过指定 URL 或者某个目录来导入,例如

sudo docker import http://example.com/exampleimage.tgz example/imagerepo

执行 docker images 命令可以看到镜像确实已经导入进来了。

  1. 使用 saveload
    这两个命令是通过镜像来保存、加载镜像文件的。

(1) 保存镜像 下面使用 docker save 命令根据 ID 将镜像保存成一个文件。

sudo docker save d7693aba42dd > test.tar

我们还可以同时将多个 image 打包成一个文件

sudo docker save [images] [images] > [name.tar]
sudo docker save -o  [name.tar]  [images] [images] ......

(2) 载入镜像 使用 docker load 命令则可将这个镜像文件载入进来。

sudo docker load < test.tar

最后再说一下 使用 exportimport 和 使用 saveload 的差异:
1,文件大小不同

export 导出的镜像文件体积小于 save 保存的镜像

2,是否可以对镜像重命名

docker import 可以为镜像指定新名称
docker load 不能对载入的镜像重命名

3,是否可以同时将多个镜像打包到一个文件中

docker export 不支持
docker save 支持

4,是否包含镜像历史

export 导出(import 导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史记录和元数据信息(即仅保存容器当时的快照状态),所以无法进行回滚操作。

而 save 保存(load 加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。

5,应用场景不同

docker export 的应用场景:主要用来制作基础镜像,比如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用 docker export 保存为一个基础镜像。然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。

docker save 的应用场景:如果我们的应用是使用 docker-compose.yml 编排的多个镜像组合,但我们要部署的客户服务器并不能连外网。这时就可以使用 docker save 将用到的镜像打个包,然后拷贝到客户服务器上使用 docker load 载入。

结语

这就是我自己的一些docker使用分享。如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。


作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。

                              ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

推荐阅读

【1】jetson nano开发使用的基础详细分享

【2】Linux开发coredump文件分析实战分享

【3】CPU中的程序是怎么运行起来的 必读

【4】cartographer环境建立以及建图测试

【5】设计模式之简单工厂模式、工厂模式、抽象工厂模式的对比

本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。

标签:输出,容器,sudo,export,镜像,docker,save,加载
From: https://www.cnblogs.com/conscience-remain/p/16809792.html

相关文章

  • 【工具使用】docker(八)用例管理工具 testlink
    简介:基于web页面的测试用例管理系统,测试项目管理,产品需求管理,测试用例管理,测试几乎按惯例,测试用例的创建,管理和执行,并且还提供了统计的功能。部署数据库:mariadb......
  • 使用linux系统安装docker
    使用yum/apt安装ubuntu自带的源里面有docke.io,这个是Debian团队维护的docker,我们用官方团队维护的docker-ce。打开阿里云的docker-ce镜像站(https://developer.aliyun.co......
  • 如何将docker镜像的日志输出到标准输出/错误输出?(将自定义的应用日志输出到控制台)
    对于一个nginx容器,如果要通过dockerlogs命令,直接查看容器的日志,该如何来操作? 非常的简单,就是将应用(nginx)生成的日志输出到标准输出或者错误输出。 那么,具体的实现......
  • Docker能干嘛
    Docker能干嘛之前的虚拟机技术​虚拟机技术缺点:​资源占用十分多​冗余步骤多​启动很慢​容器化技术​比较Docker和虚拟机技术的不同:​传统虚拟机,虚拟出一些硬件,运行一个完......
  • 第三十四章 Centos7下Docker安装RabbitMQ
    一、拉取RabbitMQ镜像文件#官网:https://www.rabbitmq.com/networking.html[root@testtech2-180~]#dockerpullrabbitmq:management二、启动RabbitMQ[root@testte......
  • docker容器报x509:certificate signed by unknown authority错误
    在执行dockersearch,dockerpull命令时,我遇到的报错信息Errorresponsefromdaemon:Get"https://registry-1.docker.io/v2/":x509:certificatesignedbyunknowna......
  • 第三十五章 Centos7下rpm安装Docker-17.03
    一、安装依赖[root@cos-ftp~]#sudoyuminstalllibxml2-devellibcurl-devel-y二、下载Docker安装包#1.下载地址:https://download.docker.com/linux/centos/7/x86......
  • 未能加载或实例化TagLibraryValidator类:[org.apache.taglibs.standard.tlv.JstlCoreTL
    問題解決方案1​​在jsp中刪除以下字段即可成功運行​​<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>解決方案1​​将jstl的jar包修改为以下jar包​......
  • map输入与输出顺序不一致
    HashMap是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的,这样会导致按照顺序读取的时候和存......
  • DockerFile简介
    官网:https://docs.docker.com/engine/reference/builder/概述Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。1.构建三步骤......