1 基础镜像

BusyBox 一个极简版的Linux系统 集成了100多种常用Linux命令 大小不到2MB 适用于简单测试场景
Alpine 一个面向安全的轻型Linux发行版系统 比BusyBox功能更完善 大小不到5MB 是官网推荐的基础镜像 由于其包含了足够的基础功能和体积较小 在生产环境中最常用
Debian/Ubuntu Debian系列操作系统 功能完善 大小约170MB 适合研发环境
CentOS/Fedora 都是基于Redhat的Linux发行版 企业级服务器常用操作系统 稳定性高 大小约200MB 适合生产环境使用

2 镜像基本命令

docker search xxxx 在docker官方仓库查找所需镜像
docker pull centos 从默认仓库拉取centos镜像最新版
docker image ls 查看本机的image
docker images  
docker image rm 镜像名称/ID 删除image
docker rmi 镜像名称/ID  
docker inspect [选项] 镜像 查看image的详细信息
docker tag 镜像名:标签 新镜像名 给镜像打标签

3 docker 加速 使用国内镜像加速器 使拉取镜像更快速

 1)修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值并重启docker(可以登录阿里云控制台 搜索容器镜像服务 来获取自己的镜像加速地址)

vim /etc/docker/daemon.json
{
"registry-mirrors": ["镜像加速地址"]
}
systemctl daemon-reload
systemctl restart docker

 2)修改docker服务的启动命令 在启动时传入"--registry-mirror=xxx"参数实现

vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=镜像加速地址
systemctl daemon-reload
systemctl restart docker

4 启动容器及其参数

 语法 docker run -itd[参数] centos(镜像名称) (run 若没有镜像会直接下载)

-i 允许你对容器内的标准输入 (STDIN) 进行交互
-t 在新容器内指定一个伪终端或终端
-d 在后台运行容器 返回容器ID
-h 指定容器的主机名 如果不指定 会随机生成一个
--rm 容器停止后删除掉 默认不会删除
--name 指定容器的名称
--network 指定容器的网络连接方式 默认为NAT
--ip 指定容器的IP地址
-p <宿主端口>:<容器端口> 端口映射 将容器指定端口映射到宿主机的指定端口 可以用多个-p选项指定多个端口映射
-p 80 将容器的80端口映射到宿主机的随机端口
-P 将容器声明的所有端口映射到宿主机的随机端口
-v <宿主目录>:<容器目录> 将宿主机的指定目录映射到容器的指定目录
--privileged 需要修改某些特定的参数需要加上此选项 正常运行一个容器不建议开放这个权限

5 容器基本操作命令

docker create [选项] 镜像 创建一个容器但不运行 选项基本和run命令相同
docker ps [-a] 查看运行的容器 [-a 所有容器]
docker ps -a -q 查看所有容器的ID
docker top 容器 查看容器的进程信息
docker stop|start|restart|kill 容器 启停容器
docker pause|unpause 容器 暂停|恢复容器
docker rm 容器 删除容器(-f 运作中强行删除)
docker rm `docker ps -a -q` 删除所有容器
docker logs 容器 查看容器日志
docker cp container:src_file dst_path 将容器中的文件复制到宿主机上
docker cp src_file container:dst_path 将宿主机上的文件复制到容器中
docker inspect [选项] 容器 以json格式显示出容器的具体信息
   
连接容器  
docker exec -it centos /bin/bash 可用exit命令退出 不影响容器
docker attach centos 通过attach连接容器 使用exit退出后容器会关闭 当多个窗口同时使用该命令进入该容器时所有的窗口都会同步显示
  如果有一个窗口阻塞了 那么其他窗口也无法再进行操作 
  若不想退出后停止容器 可通过快捷键ctrl+pq退出
   
docker commit -m "描述信息" 容器 镜像名[:tag] 永久保存 将容器打包成镜像

6 导入导出

 1)基于镜像

  导出  docker save centos:latest > /bak/docker-centos_latest.bak

  导入  docker load < /bak/docker-centos_latest.bak

 2)基于容器

  导出  docker export centos7 > /bak/docker-centos7.bak

  导入  docker import /bak/centos7.bak centos7      #导入了镜像

Docker--镜像&&容器基本操作的更多相关文章

  1. Docker 镜像 && 容器的基本操作

    镜像 && 容器 docker 镜像好比操作系统的镜像(iso) docker 容器好比是已安装运行的操作系统 所以说 docker 镜像文件运行起来之后,就是我们所说的 docker ...

  2. 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

    前言 上篇讲了我们如何安装docker,现在该我们一展拳脚的时候了.接下来让我们一起学习一下docker常见的操作,让我们能够会使用 docker. 基本概念 在讲使用之前,还是先将一下docker ...

  3. Docker 镜像 容器 仓库

    Docker 包括三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker 镜像 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资 ...

  4. docker镜像,容器的操作和应用

    镜像操作 拉取镜像 从中央仓库拉取到本地 docker pull 镜像名称[:tag] #举个例子 :docker pull daocloud.io/libarary/tomcat:8.5.-jre8 ...

  5. docker 镜像 容器删除

    Docker 容器镜像删除   1.停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q) 如果想要删除所有container的 ...

  6. Docker 镜像/容器操作命令

    一.镜像操作   1.拉取镜像 # docker pull tomcat # docker pull tomcat:8.0.21-jre8 # docker pull 192.168.220.150: ...

  7. Docker 镜像、容器、仓库的概念及基本操作

    Docker 包括三个基本概念: 镜像(Image)容器(Container)仓库(Repository) 这三部分组成了Docker的整个生命周期,如下图所示,容器是由镜像实例化而来的,这和我们学习 ...

  8. 【转】深入 Docker:容器和镜像

    在本专栏往期的 Flux7 系列教程 里,我们已经简单地探讨了 Docker 的基本操作.而在那篇教程中,我们一直是简单地将容器当成是"正在运行的镜像",并没有深入地区分镜像和容器 ...

  9. Docker镜像和容器

    本节内容: 安装Docker 卸载docker 镜像基本操作 容器基本操作 一.安装Docker Docker 对 Linux 内核版本的最低要求是3.10,如果内核版本低于 3.10 会缺少一些运行 ...

  10. 【docker学习二】CentOS7.5+Docker 镜像(容器)的使用

    承接上篇:https://mp.csdn.net/postedit/82744127 上文介绍了容器与镜像的基本操作,这里总结下容器的使用. 先在官网找到一个镜像: https://hub.docke ...

随机推荐

  1. Dart 初探 (一)

    前言 Dart 是 Google 为 Flutter 开发的一款用于网页编程的语言,其类似于Javascript,也是一种面向对象的语言,但其采用基于类的编程,语法风格接近C语言. 虽说它是开发用于网 ...

  2. Java 21增强对Emoji表情符号的处理了

    现一个 Java 21 中有意思的东西! 在java.Lang.Character类中增加了用于确定字符是否为 Emoji 表情符号的 API,主要包含下面六个新的静态方法: public stati ...

  3. TPC-DS工具介绍及性能测试

    一. Hive-testbench工具介绍 TPC-DS:https://www.cnblogs.com/webDepOfQWS/p/10544528.html 由于原生态工具生产测试数据表存在bug ...

  4. 记一次解决RestTemplate和HttpClient请求结果乱码的问题

    调用一个接口,发送POST请求,浏览器和Postman均返回正常,代码中用RestTemplate和HttpClient均返回乱码 开始一直以为是编码问题导致,网上查了解决方法,也看了源码,都不对症 ...

  5. MySQL笔记01: MySQL入门_1.2 MySQL下载安装与配置

    2.2 MySQL下载安装与配置 2.2.1 MySQL下载 MySQL中文官网:https://www.mysql.com/cn/ MySQL英文官网:https://www.mysql.com/ ...

  6. 技术Leader:像李云龙一样打造学习型团队

    今天跟大家分享一下怎么样构建一个学习型的团队. 首先对于计算机行业而言,不明而喻,我们要接受的东西真的太多了.我们接触的信息和变化也太多了.如果只是因循守旧,排斥新东西,那么我们被时代淘汰只是个时间问 ...

  7. 重磅:谷歌发布最强大AI模型【Google Gemini】

    一.前言 北京时间 2023年12 月 13 日Google 发布了最新的 Gemini Pro模型,并且提供了 API 访问. 一个更好的消息是:Gemini Pro 可免费使用.赶紧体验起来吧~ ...

  8. LeetCode:不用加号的加法(位运算)

    解题思路:位运算,只能用位运算符.a.b同号比较好处理.主要是异号的情况,考虑 a>0,b<0,因为 a,b的绝对值都不会超过2^32,因此取模数为2^32.根据同余方程可知 (a+b)% ...

  9. C++ Qt开发:StatusBar底部状态栏组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStatus ...

  10. Python 中 key 参数的含义及用法

    哈喽大家好,我是咸鱼 我们在使用 sorted() 或 map() 函数的时候,都会看到里面有一个 key 参数 其实这个 key 参数也存在于其他内置函数中(例如 min().max() 等),那么 ...