Docker 容器化部署技术_docker

大家好,我是Brook!

本文主要介绍Docker容器技术概述、Docker的安装及相关常见操作命令。

Docker容器技术概述

Docker重新定义了程序开发测试、交付和部署的过程。

随着云计算技术的深入发展,使用虚拟服务器代替传统的物理服务器越来越常见。

服务器虚拟化的思想是在性能强劲的服务器上运行多个虚拟机,每个虚拟机运行独立的操作系统与相应的软件。通过虚拟机管理器可以隐藏真实机器的物理配置。其中虚拟机中运行的操作系统称为客户操作系统(Guest OS),服务器运行的操作系统称为主机操作系统(Host OS)。

物理服务器运行着主机操作系统,虚拟机管理器进行硬件虚拟化,向虚拟机提供CPU、内存、网络、显卡等虚拟设备,虚拟机运行着客户操作系统和应用程序。

有一种技术不进行硬件虚拟化,就能让虚拟机直接使用物理服务器的CPU、内存、网络等,即容器技术。在一台物理服务器上安装Linux操作系统,通过容器技术创建多个虚拟服务器,这些虚拟服务器和物理服务器共用Linux内核。

Docker容器技术共享服务器Linux操作系统内核和文件系统,性能得到极大提高,并不像虚拟机那样模拟 一个完整的操作系统,却提供虚拟机一样的效果。

虚拟机是操作系统级别的隔离,容器是进程级别的隔离。

Docker是开源的应用容器引擎,开发者可以将应用及其依赖的软件一起打包到容器中,实现一次部署到处运行的效果。当应用切换服务器时,再次部署相当于复制一个文件的操作,节约大量的安装部署时间。

Docker容器技术优势

1、启动快、解决虚拟机资源消耗问题

启动容器相当于启动本机一个进程,启动速度快。一台电脑运行一个Linux虚拟机可能会卡顿,却可以使用Docker虚拟几十甚至上百台虚拟Linux服务器,容器仅占用用到的资源,多个容器可共享资源。

2、体积小、快速部署

开发的应用在自己电脑上运行,换一台机器可能无法运行,需要环境配置。

使用Docker可以将应用程序及依赖包打包在一个文件里,运行这个文件就会启动虚拟服务器。

3、提供一次性环境

启动或关闭一个虚拟服务器就像启动或关闭一个进程一样简单、快速。

4、组建微服务架构

通过多个容器,一台机器可以跑很多虚拟服务器,一台机器上可以虚拟出微服务架构,也可以模拟出分布式架构。


Docker的安装部署与使用

下载网址:​https://docs.docker.com/​

一、Windows下安装Docker

双击 Docker Desktop Installer.exe 运行安装程序,在 Windows 上安装 Docker 桌面应用。

1)首先确保windows开启虚拟化功能

Docker 容器化部署技术_服务器_02

勾选确定后,重启电脑生效,在任务管理器中即可查看虚拟化功能是否开启

Docker 容器化部署技术_python_03

2)出现提示时,确保在“配置”页面上选择“启用 Hyper-V Windows 功能”或“为 WSL 2 安装所需的 Windows 组件”选项。

按照安装向导上的说明授权安装程序并继续安装。

安装成功后,单击关闭完成安装过程,最后Docker成功启动如下图所示。

Docker 容器化部署技术_服务器_04

注:

安装重启后,docker会启动失败,不用慌,直接根据提示点击链接下载更新wsl版本并安装即可解决。

Docker 容器化部署技术_python_05


3)配置镜像加速

Docker 容器化部署技术_docker_06

后续进一步介绍服务器中Linux(Ubuntu)系统下Docker安装与使用。

二、Docker的命令使用方法

参考:​https://docs.docker.com/go/guides/​

操作工具:利用Win10自带的powershell命令终端以管理员身份打开,执行Docker操作命令。

Docker 容器化部署技术_python_07

查看Docker命令的帮助信息,查看常见命令

Docker 容器化部署技术_docker_08


1、查看Docker命令的帮助信息

docker --help  #docker全部命令帮助信息docker command --help  #docker具体命令commad的帮助信息

2、查看docker信息和版本docker info #容器的池、已用数据大小、总数据的大小、基本容器大小、当前运行容器数量等。docker version #查看docker版本

3、镜像操作

1)搜索镜像,查看网上已经做好的容器镜像

docker search python

我们也可以制作包含自己应用或服务的镜像文件,此文件共享给他人,即可直接使用Docker打开容器

Docker 容器化部署技术_docker_09

2)网络中拉取下载镜像

docker image pull <repository>:<tag>

或docker pull <repository>:<tag>

下载仓库Python镜像

Docker 容器化部署技术_docker_10

3)导入下载好的容器镜像文件docker load < image_xxx.tar

4)查看当前已有镜像docker images

Docker 容器化部署技术_docker_11


注:以上为拉取的Python镜像

REPOSITORY:镜像远程仓库源

TAG:镜像标签    

IMAGE ID :镜像ID

CREATED :镜像创建时间

SIZE :镜像大小


5)删除镜像(通过镜像名称或id来指定删除)

docker rmi <镜像ID或名称>

6)删除所有的镜像

docker rmi $(docker images -q)

4、创建并运行容器

docker run <容器名称>

docker run -dit --name="容器名称"  镜像ID或名称 /bin/sh

#创建一个名为python~的容器。

Docker 容器化部署技术_服务器_12

5、查看容器docker ps -a #查看所有容器docker ps -l #列出最近一次启动的容器

注:创建不同容器ID是不一样的,但利用的镜像文件ID是创建时引用决定的

Docker 容器化部署技术_python_13

6、进入容器

docker exec -it <容器名>/bin/bash

Docker 容器化部署技术_docker_14

docker exec -it <容器ID> bash

Docker 容器化部署技术_docker_15

注:可知这里的容器是带Python环境的Linux系统

7、复制容器里文件、目录到本地服务器

1)从容器里面拷文件到宿主机:docker cp  CONTAINER: SRC_PATH  DEST_PATH

docker cp 容器名:要拷贝的文件在容器里面的路径    要拷贝到宿主机的相应路径

2)从宿主机拷文件到容器里面:docker cp  SRC_PATH  CONTAINER: DEST_PATH

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

注:不管容器有没有启动,拷贝命令都会生效

8、停止、启动、重启、退出容器

docker stop <容器ID>

docker start <容器ID>

docker restart <容器ID>

exit或ctrl+d  #退出容器

9、删除容器(删除前先停止该容器运行)

docker stop <容器ID>

docker rm <容器ID> #删除单个容器

docker rm/kill $(docker ps -a -q)  #停止所有容器

10、容器的备份和恢复

docker commit -p<容器ID>备份命名  #备份,导出到本地

docker save 备份名> 导出本地容器路径全名

docker load -i 本地容器路径   #恢复容器

Docker 容器化部署技术_docker_16

下一篇Docker 容器化部署 Python 应用,敬请期待!