Docker:镜像操作和容器操作
镜像操作
列出镜像:
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6ba66e537a 4 weeks ago 960 B
获取镜像:
docker系统镜像可以从任意一个可访问的镜像仓库获取,默认从docker hub上获取,如果下载太慢的话可以考虑国内的镜像仓库,例如dl.dockerpool.com:5000或者阿里云镜像库下载。
docker获取镜像用docker pull命令,如下:
#从docker官方仓库下载ubuntu12.04版本镜像 sudo docker pull ubuntu:12.04 从dl.dockerpool获取镜像 sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04
注意:从第三方镜像仓库获取镜像可能出现https证书问题,例如:
Error response from daemon: unable to ping registry endpoint https://dl.dockerpool.com:5000/v0/ v2 ping attempt failed with error: Get https://dl.dockerpool.com:5000/v2/: tls: oversized record received with length 28012 v1 ping attempt failed with error: Get https://dl.dockerpool.com:5000/v1/_ping: tls: oversized record received with length 28012
解决方案:
进入/etc/default目录,找到docker文件,在其中添加如下代码:
DOCKER_OPTS="--insecure-registry dl.dockerpool.com:5000"
之后重启docker服务:
sudo service docker restart
镜像保存与导入
保存的文件以.tar方式存在
保存方式一:save
save命令会将镜像完整保存,包括历史版本和元数据信息,所以文件可能比较大。
-o: 表示以文件的形式导出 紧跟在-o后面的是导出文件保存的位置 最后是镜像(仓库:TAG,或者镜像id)sudo docker save -o /home/fengzheng/dockerImages/mmm.tar ubuntu:12.04 同样用的是Ubuntu,在一台机器上正常,在另外一台机器上报如下错误,还没有找到原因,希望有知道原因的朋友在评论里指出,不胜感激。
Error response from daemon: open /var/lib/docker/aufs/mnt/30868777f2756735efc907c763555f869472d48ea92156c3c4b09ac22ec4adc6/.wh..wh.plnk/1003.3513973: operation not permitted
保存方式二:export
确切的说,export其实是容器的保存,只把镜像当前的状态保存下来,没有历史版本等信息,所有文件比较小
-o:表示以文件形式导出 紧跟在-o后面的是导出文件保存位置 最后是容器的id 容器通过sudo docker ps -a 查看,下一篇会介绍docker export -o ubuntu1204.tar d0751467dcad
镜像导入:
docker load
sudo docker load < /home/fengzheng/Docker/ubtuntu12.04.tar
镜像删除
删除镜像前,要先把依赖于这个镜像的容器删除(sudo docker rm 容器id)
删除镜像的命令是docker rmi [镜像id]
sudo docker rmi 0ac5b09d8536 Deleted: 0ac5b09d8536832e73c10e39bfda2e94781e07ebe47a206ea1c20f3f672f258a Deleted: efbb515ae632b8ba4b8536c1eadcf1304d915c076fcadbc8c2cb6f8f2ab82013 Deleted: 5e59ab4801348d2d951c93373151bf0b4059c30bb1b58af4ce5e390114e83e1c Deleted: be10ee96620dd1cb4bae39bb0351f241eed25b086e0c90a907a29eef2af41b34
提交修改的容器,并生成新的镜像
当对现有容器进行修改后,例如安装了某些软件、修改了配置等,要保存当前修改并生成新的镜像,使用docker commit命令 ,这个命令和git的commit命令很像
# -a:修改者信息 -m:注释、说明 紧跟着当前操作的容器id 最后是要生成的新的镜像名称sudo docker commit -a "fengzheng" -m "this is a commit message" ae2a59b86dd9 fengzheng/ubuntu 085243761c41ae58e92ba855539460b7342a5cd31b44b51a71c654bb8f823c10
查看镜像的信息:docker inspect [镜像名称或者镜像id]
sudo docker inspect fengzheng/ubuntu 或者 sudo docker inspect 085243761c41
容器操作
新建并启动容器
根据一个镜像可以启动多个容器,启动容器的命令是docker run
sudo docker run -t -i ubuntu:12.04 /bin/bash 或者 sudo docker run -t -i 镜像id
常用参数解释:
-t 表示让Docker分配一个伪终端并绑定到容器的标准输入上
-i 表示让容器的标准输入保持打开
-d 表示以守护方式打开(即非交互模式,后台运行)
还有一个比较常用的,做网络配置时端口映射的参数-p,例如下面的命令将宿主机的3222端口映射到容器的22端口、将宿主机的3280端口映射到容器的22端口,用法如下:
#-p 设置端口映射 -p 宿主机端口:容器端口 sudo docker run -t -i -p 3222:22 -p 3280:80 87e5b6b3ccc1 /bin/bash
查看容器列表
#查看已启动的容器 sudo docker ps #查看所有容器 sudo docker ps -a
启动一个已存在的容器
#后面的id为容器IDsudo docker start 8d98fd43acd4
进入容器
sudo docker attach 8d98fd43acd4
停止容器
sudo docker stop 8d98fd43acd4
删除容器
容器必须是停止状态的才可以删除
sudo docker rm 8d98fd43acd4
导出容器
#将容器id为7691a814370e 的导出到当前目录下 名称为ubuntu.tar sudo docker export 7691a814370e > ubuntu.tar
导入容器
转载于:https://www.cnblogs.com/fengzheng/p/4958571.html
Docker:镜像操作和容器操作相关推荐
- docker镜像管理基础和操作
#docker镜像管理基础 镜像的概念 镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱. docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动容器. docker ...
- yolov5制作docker镜像并在容器中使用
说明:本教程为将yolov5制作为docker镜像,通过容器实现yolov5的调用. 一.建立包含yolov5所需库的dockerfile,基于普通深度学习dockerfile修改,具体dockerf ...
- Docker(二)容器操作容器
Docker架构(二)容器操作 容器是Docker的令一个可行概念,容器就是镜像的运行实例,是独立运行的一个或一组应用 (1)Docker容器的创建和启动 容器创建就是镜像加载过程 命令格式:dock ...
- Docker镜像原理及容器数据卷
什么是docker镜像? docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷.环境变量.用户等):镜像不包含任 ...
- linux系统下使用docker镜像并安装容器
文章目录 一.docker安装及配置 1.操作文档 2.步骤 2.1 卸载旧版本 2.2 设置仓库 2.3 安装新docker 2.3 启动docker 2.4 设置docker开机自启动 2.5 卸 ...
- 【Docker】备份Docker镜像image、容器container、数据volume
文章目录 镜像image备份 容器container备份 数据卷volume 基本操作 数据卷备份 reference 本意上想要了解一下 Docker 容器中 Volume 的备份,毕竟重要的数据都 ...
- spring boot项目生成docker镜像并完成容器部署
一.问题产生 把spring boot项目生成的jar打成docker镜像并生成docker容器完成部署是比较简单方便的部署方式,而且部署过程很少会出错. 二.部署步骤 1.利用maven或者grad ...
- docker镜像中进入容器命令行并查看运行中的容器
之前遇到过一个项目直接给了一个docker环境,但是我对于docker的命令行并不熟,于是查了相关资料,这里以容器MySQL为例,给大家举个例子 启动镜像中的MySQL 启动MySQL分为两步: 查看 ...
- Docker基础认识,镜像、容器操作及镜像的制作
一.了解虚拟机和容器的区别 二.Docker概述 三.安装Docker 1.安装依赖包 2.设置阿里镜像源 3.安装Docker-CE 四.docker常规操作 1.镜像加速(提高镜像下载速度) 2. ...
最新文章
- linux-glibc内存管理小结2(内存相关系统调用的实现)
- 院长齐聚,答疑解惑 | 清华-青岛数据科学研究院“院长接待日”成功举办
- 价格走势PHP源码,php多币种区块链交易所源码 存取功能齐全+最新价格走势正常...
- spring cloud整合OpenFeign
- 使用ultramon调整任务栏高度
- 【SpringBoot笔记】SpringBoot整合Druid数据连接池
- [bbk2908]第4集 - Chapter 03 - 介绍RAC的体系结构
- 刚毕业就年薪30万,程序员真的这么有“钱”途吗?
- java 无锁框架_高性能无锁并发框架 Disruptor,太强了!
- 谷粒商城基础篇爬坑笔记--No Feign Client for loadBalancing defined以及加载测试失败
- python遍历链表_Python实现单向循环链表
- Android的系统架构
- 如何从零配置腾讯云cdn加速服务?
- mysql2005导出mdf,sql server 2005只有.mdf文件如何附加
- Ubuntu18.04安装搜狗输入法无法切换中英文
- 君澜再入宁波打卡孤岛式静谧度假;万达酒店联袂头部漫画APP快看打造国漫展 | 全球旅报...
- pyecharts绘制地铁图_2025年北京市轨道交通线路预绘图(含地铁、有轨电车、市郊铁路)...
- 豆豆趣事[2014年08月]
- 马克思主义哲学笔记(三)
- Ant Design Table columns 参数配置隐藏列方法