Docker笔记

1.初识docker

        1.1什么是docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。

  • 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。
  • 在数百上千台服务中重复部署,环境不一定一致,开发、测试、生产环境有差异,会遇到各种问题

 Docker解决依赖兼容问题

采用了两个手段:

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包

  • 将每个应用放到一个隔离容器去运行,避免互相干扰

  •  

Docker解决操作系统环境差异


应用程序在计算机中交互的流程如下:

1)应用调用操作系统应用(函数库),实现各种功能

2)系统函数库是对内核指令集的封装,会调用内核指令

3)内核指令操作计算机硬件

Docker如何解决不同系统环境的问题?

Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包,不管实际的运行系统是Centos还是Ubuntu都可以正常运行,因为应用程序调用的是捆绑在一起的系统的函数,系统函数再调用linux内核的函数。
Docker运行到不同操作系统时,直接基于打包的函数库,只借助于操作系统的Linux内核来运行,不在乎实际运行的系统版本是什么。

Docker是一个快速交付应用、运行应用的技术,具备下列优势:

  • 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
  • 运行时利用沙箱机制形成隔离容器,各个应用互不干扰
  • 启动、移除都可以通过一行命令完成,方便快捷

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统

  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

 docker架构

镜像和容器

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

镜像就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。这个文件包是只读的。

容器就是将这些文件中编写的程序、函数加载到内存中允许,形成进程,只不过要隔离起来。因此一个镜像可以启动多次,形成多个容器进程

 docker架构

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等

  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令

  •  

DockerHub


网址:https://hub.docker.com/

DockerHub:DockerHub是一个官方的Docker镜像的托管平台。这样的平台称为Docker Registry。
国内也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。
 

安装docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。

Docker CE 分为 stable test 和 nightly 三个更新频道。

卸载(可选)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:('\'表示本行命令未结束,下一行继续,'\'前记得有一个空格)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

 

安装Docker

首先需要大家虚拟机联网,安装yum工具

yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken


yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo


yum makecache fast


yum install -y docker-ce


systemctl start docker

配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://wjk0fz77.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 Docker的基本操作

镜像名称

首先来看下镜像的名称组成:

  • 镜像名称一般分两部分组成:[repository]:[tag]。
  • 在没有指定tag时,默认是latest,代表最新版本的镜像

 

镜像命令

常见的镜像操作命令如图:

docker build:通过Dockerfile构件镜像

docker pull:从镜像服务器拉取镜像,镜像服务器分为 公共镜像服务(DockerHub等)和私服

docker push:推送镜像到镜像服务器、

docker images:查看镜像

docker rmi [ImageName]:删除镜像

docker save -o [保存的目标文件名称] [镜像名称]: 把镜像保存为一个压缩包,供同事线下使用。
docker save -o nginx.tar nginx:latest

docker load :加载压缩包镜像

docker load -i nginx.tar

docker xx --help:查看命令xx的语法

 

容器操作
命令:(下面案例有具体使用方法)

docker run:创建并运行一个容器,处于运行状态

docker pause:让一个运行的容器暂停

docker unpause:让一个容器从暂停状态恢复运行

docker stop:停止一个运行的容器

docker start:让一个停止的容器再次运行

docker rm:删除一个容器

docker exec:进入容器(执行命令)

容器保护三个状态:

  • 运行:进程正常运行
  • 暂停:进程暂停,挂起,CPU不再运行,并不释放内存
  • 停止:进程终止,回收进程占用的内存、CPU等资源

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值