Docker_入门

目录

























































参考文献

docker中文网

尚硅谷_Docker核心技术(基础篇)

DockerHub

Docker官方文档(英文)

基础理论

技术意义

解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术

比起传统虚拟机,更轻便,省去系统的硬件资源

Docker_入门

Docker三大元素

镜像

  • 一个只读的模板,镜像可以用来创造镜像容器,一个镜像创作多个容器

容器

  • 独立运行的一个或一组应用.容器使用镜像创建的运行实例
  • 它可以被启动、开始、停止删除
  • 每个容器都是相互隔离、保证安全的平台

Docker_入门

仓库

Docker_入门

标签类似版本号

三者配合

Docker_入门

Docker架构

Docker_入门

The Docker daemon

The Docker daemon (dockerd) listens for Docker API requests and manages Docker objects such as images, containers, networks, and volumes. A daemon can also communicate with other daemons to manage Docker services.

The Docker client

The Docker client (docker) is the primary way that many Docker users interact with Docker. When you use commands such as docker run, the client sends these commands to dockerd, which carries them out. The docker command uses the Docker API. The Docker client can communicate with more than one daemon.

Docker registries

A Docker registry stores Docker images. Docker Hub is a public registry that anyone can use, and Docker is configured to look for images on Docker Hub by default. You can even run your own private registry. If you use Docker Datacenter (DDC), it includes Docker Trusted Registry (DTR).

When you use the docker pull or docker run commands, the required images are pulled from your configured registry. When you use the docker push command, your image is pushed to your configured registry.

虚拟机与容器的对比

虚拟机

Docker_入门

缺点

  • 资源占用多
  • 冗余步骤多
  • 启动慢

LXC

Docker_入门

两者区别

Docker_入门

为什么docker比虚拟机快

Docker_入门

Docker_入门

如下图所示,docker没有Hypervisor 并且docker不需要重新加载操作系统,全部由Docker Engine完成

Docker_入门

Docker_入门

开发/运维(DevOps)

docker所支持的理念,即自己开发自己运维,其意义

Docker_入门

DockerHub

类似与github,提供Docker镜像仓库

Linux安装Docker

前置

Docker_入门

查看内核命令

[ ~]$ uname -r
2.6.32-642.el6.x86_64
[ ~]$ cat /etc/redhat-release
CentOS release 6.8 (Final)

centos6安装

安装命令

yum install -y epel-release
yum install -y docker-io
#如果第二个命令失败,可尝试
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

安装后配置文件: /etc/sysconfig/docker

启动

#启动
service docker start
#查看版本
docker version

查看配置是否成功

ps -ef|grep docker

Docker_入门

入门案例_Hello-world

配置阿里云镜像

默认的docker-hub下载太慢了

阿里云开发者网址

注册,进入控制台

Docker_入门

进入加速器,查看加速地址

Docker_入门

修改配置

Docker_入门

将加速地址复制到other_args

Docker_入门

重启

service docker restart

运行hello-world

docker run hello-world

Docker_入门

底层运行原理

docker run的流程

Docker_入门

Docker_入门

常用镜像命令

启动服务

#启动
service docker start
#查看版本
docker version

docker images

查看当前主机镜像

Options

Docker_入门

实例

Docker_入门

参数说明:

Docker_入门

docker search

Options

Docker_入门

实例

Docker_入门

也可直接在docker hub搜索

Docker_入门

可以看出排列都相同

docker pull

拉取镜像

不加tag,默认latest,即最新版本

Docker_入门

docker rmi

删除镜像,一般需要加-f强制删除

Options

Docker_入门

实例

Docker_入门

常用容器命令

运行时报错,解决参考:

因kernel too old 而 centos6.8 升级内核

以centos镜像为例

docker pull centos

Docker_入门

docker run

新建并启动容器

Options

Docker_入门

经常将i,t一起使用

实例

以交互模式运行一个centos容器,并分配一个伪终端

Docker_入门

以守护式方式运行,ps查询发现后台没有进程的原因

Docker_入门

为了让守护式容器不退出,即要安排任务给他

docker run -d centos /bin/sh -c "while true;do echo hello zxyy;sleep 4;done"

docker ps

查看当前docker所有镜像运行的容器

Options

Docker_入门

实例

Docker_入门

退出容器

Docker_入门

docker start

后跟容器名或容器ID,用以打开以前运行过的容器

docker restart

重启容器

实例

Docker_入门

docker stop

停止容器

docker rm

删除已停止容器,注意rmi表示删除镜像,没有i表示删除容器

一次性删除多个容器

#方法一
docker rm -f ${docker ps -a -q}
#方法二
docker ps -a -q | xargs docker rm

docker logs

docker logs -f -t --tail 3 容器ID

Options

Docker_入门

实例

Docker_入门

docker top

docker top 容器ID

查看容器内部进程

docker inspect

docker inspect 容器ID

查看容器内部细节

docker attach / exex

重新进入正在运行的容器

用于退出容器的交互界面后,重新进入

Docker_入门

exec可以不仅如此容器,直接运行shell命令,如下图

Docker_入门

docker cp

将容器内的文件拷贝到主机

该命令用于当你想关掉容器,确定保留容器里的部分重要数据

Docker_入门

实例

Docker_入门

相关推荐