docker学习笔记01 – 作者:hu666666

一、docker概述

1.为什么要提出docker?

将一个应用项目上线时,需要在服务器配置复杂的环境,过于费时费力,以及在同一台服务器上部署不同的应用,可能产生冲突。

2.传统与现在应用部署的不同?

a.传统:开发人员开发代码包,直接交给运维人员,再由运维人员部署运行环境,应用上线

b.现在:开发打包部署上线,一套流程完成

3.docker的优势?

a.docker将多个应用通过容器隔离起来,放在同一个服务器上运行,可以避免不同应用部署在同一台服务器上而产生的冲突问题

b.docker也可以利用隔离机制将服务器的资源利用到极致

4.docker的相关网站?

a.官网

b.官方文档

c.镜像仓库

二、容器化和虚拟化技术介绍

a.虚拟化技术

下载系统的原生镜像文件,一般都是几个G大小,然后安装在VM中,十分笨拙

b.容器化技术

通过docker镜像仓库,或者阿里云镜像仓库下载镜像(一般就几M,或者几百M),在通过镜像创建容器,容器之间彼此隔离,使用起来小巧方便

c.两种技术优缺点对比

虚拟化技术:可以较好且完整的模拟出一台计算机,但其占宿主主机的资源较多,安装部署步骤多,操作麻烦,启动慢
容器化技术:其不是模拟出一个完整的操作系统,容器内的应用是直接运行在宿主主机上,容器并没有自己的内核,也没有虚拟自己的硬件。每个容器之间都是相互隔离的,都有自己的文件系统,互不影响

三、docker的作用

a.应用更快速的交付和部署

docker打包镜像发布测试,一键运行

b.更快捷的升级和扩缩容

c.更简单的系统运维

d.更高效的利用计算机资源

可以在一台物理机上运行多个容器实例,从而保证充分利用服务器的资源,把性能压缩到极致

四、docker安装

地址:https://blog.csdn.net/qq_44316726/article/details/108557361

五、run的运行流程和底层原理

1.当我们使用docker run命令创建一个容器时,其运行流程如下

a.docker会在本机上搜索镜像,判断其是否存在

b.若在本机上找到该镜像,就使用该镜像创建容器。否则,进行下一步

c.去docker Hub官网下载镜像,若找到了该镜像就下载到本地,并使用其创建容器。若没有找到该镜像,就返回错误

2.底层原理

docker是一个Client-Server结构的系统,docker的守护进程运行在主机上,使用者通过Socket从客户端访问该进程。docker-Server在接收到docker-Client的指令后,会执行该指令

六、docker的常用命令

a.帮助命令

docker version                                          #显示docker的版本信息

docker info                                               #显示详细的系统详细,包括镜像和容器的数量

docker 命令 –help                                   #显示该命令的详细信息,以及使用方法

b.镜像命令

查看镜像:

docker  images                                        #查看本地主机上的镜像

#参数介绍    -a  列出所有镜像            -q    只显示镜像的id

搜素镜像

docker search  镜像名

#参数介绍    –f        过滤选项

实例:docker search –filter=SIZE=5000 mysql

下载镜像

docker pull 镜像名                                   #默认下载最新版本的镜像

docker pull 镜像名:版本号                       #下载指定版本

删除镜像

docker rmi -f 镜像id                                 #删除一个镜像

docker rmi -f 镜像id  镜像id                     #删除多个镜像

docker rmi -f $(docker image -aq)           #删除所有本地的镜像

c.容器命令

注意:我们只有有了镜像,才可以常见容器

新建并启动容器

docker run [选项] 镜像名

#选项解释

–name=’centos01′                                   #指定容器的名称,用于区分同一镜像创建的不同容器

-d                                                              #后台运行

-it                                                              #交互式运行,并进入容器查看内容

-p                                                              #指定容器的端口

-p   ip:主机端口:容器端口

-p   主机端口:容器端口

-p   容器端口

容器端口

-P                                                              #随机指定端口

列出运行的容器

docker ps [选项]                                        #列出正在运行的容器

选项解释

-a                                                              #列出正在运行的容器+历史上运行的容器

-n=数字                                                    #列出最近的进程容器

-q                                                              #只显示容器的编号

退出容器

exit                                                           #退出并停止容器

Ctrl+q+p                                                  #退出不停止容器

删除容器

docker rm 容器id                                     #删除指定容器,但不可以删除正在运行中的容器

docker rm -f  容器id                                #可以删除正在运行中的容器

docker rm -f $(docker ps -aq)                 #删除所有容器

启动停止容器

docker start 容器id

docker restart 容器id

docker stop 容器id

docker kill 容器id                #强制停止容器

七、docker的高级命令

a.查看日志

docker logs –tf –tail 日志显示条数 容器id

b.查看容器中的进程数

docker top 容器id

c.查看镜像的元数据

docker inspect 容器id

d.进入后台运行

docker exec -it 容器id /bin/bash     #进入容器后,会开启新的终端,在里面操作

docker attach 容器id     #进入容器后,不会开启新的终端,直接使用正在运行的终端

e.将容器中的文件拷贝的物理主机上

docker cp 容器id:容器内路径  物理主机的目标路径

来源:freebuf.com 2021-03-20 18:27:44 by: hu666666

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论