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. PHP微信三方平台-序章

    一 微信三方平台准备工作 参数说明: 1.登录授权的发起页域名:提供登录授权公众号的域名地址主开发地址 2.测试公众号列表:未全网发布之前只能添加测试公众号 3.授权事件后的接收URL: 这个地址只要 ...

  2. pack.json中的^ ~的区别

    在版本说明前面还有个符号:'^'(插入符号)和'~'(波浪符号),他们之间的区别:例如: '~'(波浪符号):他会更新到当前minor version(也就是中间的那位数字)中最新的版本.放到我们的例 ...

  3. crontab使用说明【一文搞懂Linux定时任务Crontab】

    1.简介 cron是一个在后台运行调度的守护进程,而crontab是一个设置cron的工具.cron调度的是/etc/crontab文件. 2.centos安装crontab yum install ...

  4. Oracle_表空间

    Oracle 表空间 在执行具体的操作之前,由于Oracle不允许删除现有临时表空间,所以在删除现有临时表空间时要终止现有的实时会话. 查询Oracle表空间名称,表空间物理文件路径 查询临时表空间: ...

  5. 验证ADG的坏块检测和自动修复

    环境: Oracle 19c ADG(主库:单实例:备库:RAC) 1.主库新建测试文件 2.主库创建测试表 3.查询表对应数据文件信息 4.模拟数据文件物理坏块 5.查询对应测试表 6.进一步查询日 ...

  6. AWS IAM介绍

    前言 AWS是世界上最大的云服务提供商,它提供了很多组件供消费者使用,其中进行访问控制的组件叫做IAM(Identity and Access Management), 用来进行身份验证和对AWS资源 ...

  7. [Linux]监控外部用户登录及外部主机连接情况

    1 外部用户/外部主机 /var/log 在CentOS系统上,用户登录历史存储在以下这些文件中: /var/log/wtmp 用于存储系统连接历史记录被last工具用来记录最后登录的用户的列表 /v ...

  8. 狠狠地切割(Hard Version)

    狠狠地切割(Hard Version) (https://www.luogu.com.cn/problem/P8889) 跟easy版非常像,但是数据太大开标记数组的话会爆所.以得转换一下 开一个ma ...

  9. R读入数据

    两种方式: edit()自动生成一个红色的表格,列名会自动的放上去,不够的会显示var5,var6,var7 mydata <- data.frame( age = numeric(0), ge ...

  10. java Stack(栈)类、Queue和Deque队列

    1. java Stack类 特性是:LIFO(后进先出)先进后出,最先进入的在栈底. Stack底层也是通过数组实现的,同时也是线程安全的 Stack stack=new Stack(); //添加 ...