Docker容器技术 详解!!!

目录

一、概述

(一)docker介绍

(二)为什么使用Docker

(三)docker优势

1、运行环境的一致性:

2、更快速地启动部署:

3、更好的隔离性:

4、弹性伸缩、快速扩展:

5、迁移更加方便:

6、持续交付和部署:

二、docker的组成

(一)镜像:类似虚拟机镜像 , 是一个特殊的文件系统

(二)容器:类似linux系统环境,运行和隔离应用。是镜像运行时的实体

(三)仓库:集中存放镜像文件的地方。

三、在操作系统CentOS7.9安装

 (一)配置安装源

 (二)建立元数据缓存

 (三)安装docker-ce

 (四)更换国内源仓库

四、docker 信息查看

(一)docker version

 (二)docker info

 五、镜像相关

(一)组成

 (二)搜索

 (三)拉取

1、docker pull imageName    ​编辑 2、docker pull alpine   

 (四)查看

 (五)删除

(六)上传

(七)修改POSITORY:TAG(修改后保留原image,且imageID相同)

 (八)导出

(九)导入

五、容器相关

(一)启动

1、一次性运行(会直接进入容器中,当exit退出容器时,容器停止运行)

2、后台运行(不会直接进入容器,若进入后exit退出,容器依然运行)

(二)查看

(三)进入(CONTAINER ID 写到不重复即可)

(四)推出

(五)删除容器

(六)将容器导出为归档包

 (七)将容器导入的归档包导入为镜像

(八)将容器直接导出为镜像(服务容器导出为镜像采用该方法)

(九)状态

1、created

2、 up

3、Exited

4、paused

(十)查看容器详细信息

(十一)端口映射

1、-P(大写)                 随机端口映射,默认32768

2、-p(小写)  hostPort:containerPort

 3、若发现不能正常进行访问

(十二)查看容器端口映射

(十三)向容器内拷贝文件

(十四)查看容器运行进程

(十五)查看容器资源使用

(十六)查看容器日志


一、概述

(一)docker介绍

1、Docker 就像是一个轻量级的虚拟机,Docker是一个轻量级的容器,我们可以将环境交给 Docker 来管理,当我们需要移植我们的产品的时候,就可以将环境整个的迁移到另一台主机上,而不像虚拟机一样,迁移一台虚拟机及其资源;

2、Docker 是一个开源的应用容器引擎,基于 Go 语言开发。

3、Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

4、Docker相较于虚拟机来说具有更加轻量,启动更快,效率更高,可移植性更强等优势,实现了“一次封装,到处运行”,不用在关心环境的不一致问题

(二)为什么使用Docker

我们知道一款产品从开发到上线,从开发环境到生成环境。作为开发和运维人员之间协作需要考虑很多问题,尤其是当我们的产品多版本迭代之后,不同环境之间的兼容就会成为一个大问题;
这时 Docker 的出现就解决了这一难题,Docker 的出现使我们开发的软件可以“带环境安装”,即安装的时候,可以把原始环境一模一样的的复制过来,不用在担心环境不一致导致“开发时可以正常运行,生成环境就会出问题”,“在我的机器上可以正常运行,在别人的机器上就不能运行”的问题了

(三)docker优势

1、运行环境的一致性:

Docker 的镜像提供了除了内核之外完整的运行环境,确保了应用运行的一致性;

2、更快速地启动部署:

可以做到秒级,甚至毫秒级的的启动时间。大大节约了开发、测试、部署的时间;

3、更好的隔离性:

每个服务器都是独立运行的、完全隔离的。避免公用的服务器,资源会容易受到其他用户的影响;

4、弹性伸缩、快速扩展:

能够更好的处理集中爆发式的服务器使用压力;

5、迁移更加方便:

“带环境安装”;

6、持续交付和部署:

使用 Docker 可以通过定制镜像来实现持续集成,交付,部署;

二、docker的组成

(一)镜像:类似虚拟机镜像 , 是一个特殊的文件系统

1、操作系统分为内核和用户空间。对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。

2、Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。

(二)容器:类似linux系统环境,运行和隔离应用。是镜像运行时的实体

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。

(三)仓库:集中存放镜像文件的地方。

镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中存储、分发镜像的地方,比如后面我们要学的,Docker Registry就是这样的服务。

三、在操作系统CentOS7.9安装

注意:不要关闭防火墙

 (一)配置安装源

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

 

 (二)建立元数据缓存

yum  makecache [fast]

 (三)安装docker-ce

 yum install -y docker-ce

 (四)更换国内源仓库

vim /etc/docker/daemon.json

{
    "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}

 systemctl restart docker

四、docker 信息查看

(一)docker version

 (二)docker info

 

 五、镜像相关

(一)组成

index/name:tag          #tag为latest时不用书写

 (二)搜索

docker search keyWord

 (三)拉取

1、docker pull imageName
    
 2、docker pull alpine   

 (四)查看

docker images

 

 (五)删除

docker rmi imageName

(六)上传

docker push imageName

docker hub登录        docker login

(七)修改POSITORY:TAG(修改后保留原image,且imageID相同)

docker tag  oldName(POSITORY:TAG) newName(POSITORY:TAG)

 (八)导出

docker save  oldName(POSITORY:TAG)    -o filePath/fileName

(九)导入

docker load -i  filePath/fileName

五、容器相关

(一)启动

1、一次性运行(会直接进入容器中,当exit退出容器时,容器停止运行)

docker run -it POSITORY:TAG /bin/bash

2、后台运行(不会直接进入容器,若进入后exit退出,容器依然运行)

docker run -itd  POSITORY:TAG /bin/bash

(二)查看

docker ps -a

(三)进入(CONTAINER ID 写到不重复即可)

 docker exec -it  CONTAINER ID /bin/bash

(四)推出

exit

(五)删除容器

docker rm -f   容器名称或者ID

(六)将容器导出为归档包

docker export  容器名称  -o 归档包名称

 (七)将容器导入的归档包导入为镜像

docker import 归档包名称  repository:tag

(八)将容器直接导出为镜像(服务容器导出为镜像采用该方法)

docker commit  容器名称或ID repository:tag

(九)状态

1、created

docker create

2、 up

(1)docker start

(2)docker run

(3)docker restart

3、Exited

docker stop         容器运行异常

4、paused

docker pause

docker  unpause                恢复

(十)查看容器详细信息

docker  inspect  容器名称或者ID

(十一)端口映射

1、-P(大写)                 随机端口映射,默认32768

2、-p(小写)  hostPort:containerPort

 3、若发现不能正常进行访问

可能是运行的shell不正确

(1)查看容器详细信息        

(2)docker ps -a --no-trunc

(3)查看COMMAND                

(4)将COMMAND中的运行脚本跟在docker run命令的最后

(十二)查看容器端口映射

docker  port  容器名称或ID

(十三)向容器内拷贝文件

docker cp  文件名  容器名称或ID

(十四)查看容器运行进程

docker top  容器名称或ID

(十五)查看容器资源使用

docker stats   容器名称或ID

(十六)查看容器日志

docker logs   容器名称或ID

1、--details:显示更为详细的日志信息。

2、--follow(-f):跟踪日志输出。

3、--since:显示自某个开始时间的所有日志。

4、--tail:仅列出最新的N条容器日志。

5、--timestamps(-t):显示时间戳。

6、--until:显示到某个截止时间的所有日志。

猜你喜欢

转载自blog.csdn.net/wuds_158/article/details/131523788