Docker实战-知识汇总

一、基本概念

镜像:类似面向对象中的类,相当于一个模板。
容器:基于类创建的实例,就是依据镜像这个模板创建出来的实体
仓库:就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载。

Docker版本:
Docker 划分为CE 和EE。CE 即社区版,EE 即企业版,强调安全,付费使用。

分层存储:

镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。
任何额外的东西应该在该层构建结束前清理掉。

二、安装部署

Docker 要求 CentOS 系统的内核版本高于 3.10 ,安装前先验证你的CentOS 版本是否支持 Docker 。

(曾用CentOS系统内核2.6.32安装Docker的血泪史,感兴趣可查看我另一篇WIKI分享:Centos 6.5安装Docker容器问题汇总

  1. uname -r 命令查看你当前的内核版本。
  2. 执行sudo yum update,确保 yum 包更新到最新。
  3. 卸载旧版本:sudo yum remove docker docker-common docker-selinux docker-engine。
  4. 安装需要的软件包:sudo yum install -y yum-utils device-mapper-persistent-data lvm2。
  5. 设置yum源:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  6. 查看所有仓库中所有docker版本,并选择特定版本安装:yum list docker-ce --showduplicates | sort -r。
  7. 安装docker:sudo yum install docker-ce。
  8. 启动并加入开机启动
    $ sudo systemctl start docker
    $ sudo systemctl enable docker
  9. 验证安装是否成功:docker version

三、使用Docker

  • 启动一次操作容器:docker run IMAGE_NAME [COMMAND] [ARG…]

          一次操作容器在处理完操作后会立即关闭容器,例:docker run -i -t ubuntu /bin/bash

  • 启动交互式容器:docker run -t -i –name=自定义名称 IMAGE_NAME /bin/bash

          操作完一个命令后仍然可以继续,例:docker run -i -t ubuntu /bin/bash

  • 查看容器:docker ps [-a] [-l]

          列出正在运行的容器,例:docker ps

  • 查看指定容器:docker inspect name | id

          name指代具体的容器名称,id则是容器的唯一id标识,例:docker inspect haha

  • 重新启动停止的容器:docker start [-i] 容器名

          重新启动之前创建的容器,例:docker start -i haha

  • 删除停止的容器:docker rm name | id

          删除无效容器,例:docker rm haha

四、守护式容器

  • 特点
    1. 能够长期运行。
    2. 没有交互式会话。
    3. 适合于运行应用程序和服务。
  • 启动守护式容器

          启动守护式容器,可以在后台为我们执行操作:docker run -d IMAGE_NAME [COMMAND] [ARG…]

          例:docker run --name hiahia -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

  • 查看容器日志

           当守护式容器在后台运行时,我们可以利用docker的日志命令查看其输出:docker logs [-f] [-t] [–tail] IMAGE_NAME

  • 查看容器内进程

           对运行的容器查看其进程:docker top IMAGE_NAME

  • 运行中容器启动新进程

          Docker的理念是一个容器运行一个服务,但是往往需要对一个服务进行监控,所以也需要在已经运行服务的容器启动新的进程:docker exec [-d] [-i] [-t] IMAGE_NAME [COMMAND] [ARG…]

          例:docker exec -i -t hiahia /bin/bash

  • 停止守护式容器

          发送信号停止容器:docker stop 容器名

          强制停止:docker kill 容器名

五、镜像基本操作

  • 列出镜像:docker images [OPTIONS] [REPOSITORY]
  • 查看镜像:docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE]
  • 删除镜像:docker rmi [OPTIONS] IMAGE [IMAGE]
  • 查找镜像:docker search [OPTIONS] TEAM
  • 拉取镜像:docker pull [OPTIONS] NAME [:TAG]
  • 推送镜像:docker push NAME [:TAG]

          Docker允许上传我们自己构建的镜像,需要注册DockerHub的账户。

  • 构建镜像

          构建Docker镜像,可以保存对容器的修改,并且再次使用。构建镜像提供了自定义镜像的能力,以软件的形式打包并分发服务及其运行环境。Docker中提供了两种方式来构建镜像:

                   1. 通过容器构建:docker commit

                   2. 通过Dockerfile:docker build

  • 使用commit命令构建镜像

          命令:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

          参数:-a,–author=“”,指定镜像的作者信息

​          -m,–message=“”,提交信息

​          -p,–pause=true,commit时是否暂停容器

 

  • 使用Dockerfile文件构建镜像 命令:docker build [OPTIONS] DockerFile_PATH | URL | -

          参数:–force-rm=false

​          –no-cache=false

​          –pull=false

​         -q,quite=false,构建时不输出信息

​         –rm=true

        ​ -t,tag=“”,指定输出的镜像名称信息

六、镜像迁移

        我们制作好的镜像,一般会迁移或分享给其他需要的人。Docker提供了几种将我们的镜像迁移、分享给其他人的方式。推荐镜像迁移应该直接使用Docker Registry,无论是直接使用Docker Hub还是使用内网私有Registry都可以。

  • 两种迁移方式
    1. 上传Docker Hub
      1. 首先,需要在Docker Hub上申请注册一个帐号(人机验证时需要科学上网)。然后我们需要创建仓库,指定仓库名称。
      2. 在终端中登录你的Docker Hub账户,输入docker login,输入用户名密码即可登录成功。
      3. 查看需要上传的镜像,并将选择的镜像打上标签,同一镜像可以拥有不同的标签名,标签名需和Docker Hub上新建的仓库名称一致,否则上传失败。
      4. 利用push命令直接上传镜像
    2. 导出文件互传

      1. Docker 还提供了 docker load 和 docker save 命令,用以将镜像保存为一个tar文件。比如这次我们将ubuntu:latest这个镜像保存为tar文件。

      2. 查看本地磁盘,即可看见名为ubuntu18.04的tar包。我们可以将其拷贝给其他PC,利用load命令重新导入

七、使用模式

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值