1. docker的进程架构

  • docker服务进程:就是针对docker服务的命令,启动,重启
  • 接口:通过参数指定容器的IP和端口,实现对容器的远程操作
  • 客户端命令行:对docker的操作命令
  • 最后学会管理容器的网络,进程,容器等

2. docker的命令

  • 镜像的拉取

    sudo docker search  镜像名称 # 搜索镜像文件
    sudo docker pull 镜像名称
  • 查看镜像
    sudo docker images
  • 运行容器
    # 简单运行一下,通常会执行一下容器就会挂掉
    docker run 镜像名称
    # 交互式的运行一个的docker容器,-i:交互式命令, -t:开启一个终端
    docker run -it 镜像名称 /bin/bash # 后台运行一个docker容器,并指定运行shell代码 -d:让容器后台运行, -c:运行的shell命令
    docker run -d 镜像名称 /bin/sh -c "while true;do echo 辛苦了,学习linux; sleep 1;done" # 运行容器并指定名称
    docker run --name xxx -it 镜像名称 /bin/bash
    # 运行容器并指定端口映射
    docker run --name xxx -it 镜像名称 -p 6000:5000
    # 运行容器并制定端口映射,文件夹映射和环境PATH映射
    docker run --name xxx -it 镜像名称 -p 6000:5000 -v 宿主机目录:容器目录 -e

    # 运行容器指定容器的网络模式
    docker run -d --name xxx --net=host
    # 进入一个存活的容器 docker exec -it 容器id /bin/bash 

    # 退出容器
    exit
  • 停止容器
    sudo docker stop 容器ID/容器名字
  • 查看容器
    sudo docker ps # 查看存活的容器
    sudo docker ps -a # 查看所有的容器
  • 启动容器
    sudo docker start 容器名称/容器ID
  • 查看容器的详情
     sudo dockder inspect 容器名称/容器ID
    sudo docker inspect e6b | grep -i ipaddr

  • 停止一个容器

    sudo docker stop 容器ID/容器名字
  • 重启一个容器

     sudo docker restart 容器ID/容器名字
  • 删除一个容器

     sudo docker rm 容器ID/容器名称  # 必须是非正在运行的容器
  • 删除一个镜像

    sudo docker rmi image的名字/镜像ID  # 确保没有容器使用该镜像(运行或者停止的容器)

3. 访问容器内的nginx

3.1 搜索并下载nginx

sudo docker search nginx

根据镜像的名字下载镜像

sudo docker pull nginx

查看本地的镜像文件

sudo docker images

3.2 运行并访问nginx

3.2.1 运行nginx镜像

返回该容器的一个ID值

sudo docker run -d -p 80:80 nginx # d:后台运行,p实现容器和宿主机端口的映射

查看存活的容器

sudo docker ps

在本地浏览器中输入宿主机IP即可访问nginx

网络流量走向

4. 下载常用的docker

4.1 下载redis

sudo docker search redis
sudo docker pull redis

4.2 下载ubutun

sudo docker search ubuntu
sudo docker pull ubuntu

5. docker 镜像分层原理

我们在下载一个镜像的时候,细心一点会发现,下载的时候会分层下载

原因就是镜像会分层保存,很多容器共用一些层次,分层储存就可以节省容器的内存空间

6. 批量操作容器

只查看容器的ID

sudo docker ps -q

6.1 停止所有正在运行的容器

sudo docker stop `sudo docker ps -q`

6.2 删除所有的容器

sudo docker rm `sudo docker ps -aq`

7. 查看某个镜像可用的所有版本

但是有一点,需要使用外网才可以,以centos为例

https://hub.docker.com/v2/repositories/library/centos/tags/
curl -s https://hub.docker.com/v2/repositories/library/centos/tags/ | jq 

然后下载指定的版本

8. 操作dockerHub

以下操作必须使用外网才可以

8.1 注册一个docker hub

link:https://hub.docker.com/

8.2 登录个人账号

8.3 在宿主机登录个人docker账号

sudo docker login

8.4 生成本地镜像

以hello-word镜像为例,发送到自己的docker hub中,使用如下命令

sudo docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

8.5 推送本地镜像到自己账号中

sudo docker push IMAGE

此时自己的dockerhub中就有该镜像了

8.6 将自己账号的镜像拉下来

我需要将本地的删除,然后拉取

9 根据容器生成新的image

通常我们根据一个image,然后安装了很多的服务,我们希望以后基于该容器进行部署,我们就可以将该容器生成一个新的image

9.1 将容器生成image

sudo docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

9.2 推送image

10. 本地镜像的导出和导入

10.1.1 导出

sudo docker save 镜像ID/镜像名称  > 文件名.tar # 导出的文件时tar的格式

  

10.1.2 导入

sudo docker load -i  文件名.tar # 导出的文件时tar的格式

3. docker的实践玩法的更多相关文章

  1. 朱晔的互联网架构实践心得S2E4:小议微服务的各种玩法(古典、SOA、传统、K8S、ServiceMesh)

    十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器 ...

  2. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  3. 【腾讯云的1001种玩法】几种在腾讯云建立WordPress的方法(Linux)(二)

    版权声明:本文由张宁原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/126547001488207964 来源:腾云阁 ht ...

  4. 实战Excel Add-in的三种玩法

    作者:陈希章 发表于 2017年11月26日 前言 这个系列文章应该有一阵子没有更新了,原因是一如既往的多,但是根本所在是我对于某些章节其实还没有完全想好怎么写,尤其是对于Office Add-in这 ...

  5. WEB安全新玩法 [1] 业务安全动态加固平台

    近年来,信息安全体系建设趋于完善,以注入攻击.跨站攻击等为代表的传统 Web 应用层攻击很大程度上得到了缓解.但是,Web 应用的业务功能日益丰富.在线交易活动愈加频繁,新的安全问题也随之呈现:基于 ...

  6. 真正“搞”懂HTTP协议07之body的玩法(实践篇)

    我真没想到这篇文章竟然写了将近一个月,一方面我在写这篇文章的时候阳了,所以将近有两周没干活,另外一方面,我发现在写基于Node的HTTP的demo的时候,我不会Node,所以我又要一边学学Node,一 ...

  7. [C#] 软硬结合第二篇——酷我音乐盒的逆天玩法

    1.灵感来源: LZ是纯宅男,一天从早上8:00起一直要呆在电脑旁到晚上12:00左右吧~平时也没人来闲聊几句,刷空间暑假也没啥动态,听音乐吧...~有些确实不好听,于是就不得不打断手头的工作去点击下 ...

  8. git分布式版本控制玩法

    git分布式版本控制玩法 Git distributed version control play github的配置安装步骤:1.下载git bash(从http://www.git-scm.com ...

  9. 自定义 checkbox 新玩法 ?

    自定义 checkbox 新玩法 ? 第一步:selector 编写 drawable/selector_checkbox_voice.xml <?xml version="1.0&q ...

  10. 【第1期】腾讯云的1001种玩法征集,Ipad mini和Kindle 等你拿!(文章评审中)

    版权声明:本文由阁主的小跟班原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/695994001482226944 来源:腾云 ...

随机推荐

  1. AcWing 1353. 滑雪场设计

    原题链接 思路 本题如果以贪心的思路来理解,则会遇到如果根据贪心算法变更后的最高峰和最低峰会发生改变,产生后效性,导致贪心算法无效,再考虑到本题目数据量不大,山峰数量在1k以内,山峰高度在100之内, ...

  2. [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库]

    若想搞懂整个配置过程和原理,就按照章节(1 / 2)一步一步地来. 若想直接一步到位,不想花过多时间,尽快配好,就直接看附件章节. 什么是yum源? Yum(全称为 Yellow dog Update ...

  3. 使用VScode进行Python开发

    一.Microsoft Store中安装:terminal 二.PowerShell中执行: [win10新版或者win11使用: 单个命令安装运行 WSL 所需的一切内容(需要重启计算机):wsl ...

  4. day25:7个魔术方法&5个关于类的魔术属性

    目录 1.__del__(析构方法) 2.魔术方法:__str__ 3.魔术方法:__repr__ 4.魔术方法:__call__ 5.魔术方法:__bool__ 6.魔术方法:__add__& ...

  5. Matlab蚁群算法求解旅行商问题

    目录 问题展现 解决代码 代码1 输出结果 代码2 输出结果 代码3 输出结果 问题展现 假设有一个旅行商人要拜访全国 31 个省会城市,他需要选择所要走的路径,路径的限制是每个城市只能拜访一次,而且 ...

  6. Java的对象克隆

    本节我们会讨论 Cloneable 接口,这个接口指示一个类提供了一个安全的 clone() 方法. Object 类提供的 clone() 方法是 "浅拷贝",并没有克隆对象中引 ...

  7. WPF Button MouseDown事件

    Button的MouseDown事件 WPF的Button控件,鼠标点击时,MouseDown事件没有触发. 经确认,Button的MouseDown被内部处理了.下面是基类ButtonBase的部分 ...

  8. linux安装tomcat,mysql

    环境:centos7.6 ssh连接工具:tabby 安装tomcat 创建目录 mkdir /opt/tomcat 获取tomcat: 1.自己百度下载 2.我这里提供百度网盘 链接:https:/ ...

  9. Extjs4 Tree Grid 综合示例(展开、编辑列、获取数据)

    用json数据模拟后端传回来的结果,Extjs tree支持两种类型的结构,一种是带children属性的嵌套式的数据,一种是扁平的,每条记录带pid的数据,带pid的添加配置项可以自动解析成树形结构 ...

  10. 2022-08-04:输入:去重数组arr,里面的数只包含0~9。limit,一个数字。 返回:要求比limit小的情况下,能够用arr拼出来的最大数字。 来自字节。

    2022-08-04:输入:去重数组arr,里面的数只包含0~9.limit,一个数字. 返回:要求比limit小的情况下,能够用arr拼出来的最大数字. 来自字节. 答案2022-08-04: 从左 ...