一.哪些是Docker?

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

docker官网:

二.为何说Docker是容器化技术?

docker 修改仓库地址_docker修改默认仓库地址_docker指定仓库

容器化技术的特性:标准化:每位容器都是标准化、可移植的,由于她们直接运行在宿主机的内核上隔离:容器相互隔离,互不干扰redhat linux 9.0,独立运列宽性能:容器性能开支极低,可以实现分钟级甚至秒级的布署和启动版本:CE(CommunityEdition:社区版)和EE(EnterpriseEdition:企业版)

三.Docker理念

Build,ShipandRunAnyApp,Anywhere,在任何地方建立、发布并运行任何应用程序(一次封装,四处运行)

四.Docker构架

docker 修改仓库地址_docker修改默认仓库地址_docker指定仓库

docker由三部份组成:

Client顾客端docker主机Registry镜像库房服务器

dockerdaemon:

docker安装后linux操作系统,会以后台运行、守护进程的方式存在images镜像:镜像可以拿来创建docker容器,一个镜像可以创建好多容器containers:镜像和容器的关系类似面向对象设计中的类和对象,镜像是容器的模板,容器是基于镜像创建下来的。容器可以被创建、启动、停止、删除等等。

Registry:

镜像注册服务器一个dockerRegistry(库房注册服务器)中可以包含多个Repository(库房);每位库房可以包含多个标签/版本(Tag);每位标签对应一个镜像。库房分为公开库房(Public)和私有库房(Private)两种方式,公开库房就是docker官方库房,私有库房是自己搭建的docker私服

Client:

docker终端安装好docker中,同时包含了docker顾客端docker 修改仓库地址,顾客端负责执行docker命令,发送给docker主机中的docker守护进程,比如:从库房下载镜像,通过镜像创建容器等等

docker修改默认仓库地址_docker 修改仓库地址_docker指定仓库

五.CentOS7安装docker(1)安装须要的软件包:

yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2

(2)设置docker下载镜像(推荐用阿里云,一个字:快)

yum-config-manager--add-repo

(3)更新yum软件包索引

yummakecachefas

(4)安装DOCKERCE(社区版)

yuminstall-ydocker-cedocker-ce-clicontainerd.io

注意第一次安装可能会出现错误,重新执行一下安装的命令就好了

(5)启动docker

systemctlstartdocker#启动docker

systemctlenabledocker#设置开机自启动

(6)查看版本

dockerversion

docker 修改仓库地址_docker修改默认仓库地址_docker指定仓库

(7)docker卸载,一次执行下边的三行命令

systemctlstopdocker

yumremove-ydocker-ce

rm-rf/var/lib/docker

六.配置阿里云镜像服务加速器

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

七.Docker常用命令(1).Docker基本命令(2)Docker服务相关命令(3)Docker镜像命令(docker官方镜像网站)

我就不演示了

我就不演示了

(4)容器操作

dockercreate镜像名称#依据镜像名创建一个容器

dockercreate--nametomcat1镜像名称#依据镜像创建名为tomcat1的容器

dockercreate镜像id#依据镜像id新建一个容器

dockerstart容器名|容器ID

dockerstop容器名|容器ID

dockerrestart容器名|容器ID

dockerkill容器名|容器ID按照容器名强制停止一个容器

dockerrm容器名称#删掉未启动的容器

dockerrm-f容器名称#强制删掉已启动的容器

docker指定仓库_docker修改默认仓库地址_docker 修改仓库地址

dockerrm-f$(dockerps-qa)#删掉所有容器,包括正在运行的容器

我就不演示了

dockerps-a-q|xargsdockerrm#删掉所有容器,不包括正在运行的容器

我就不演示了

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

exit#容器停止退出,此时执行

推荐直接使用:dockerrun-itd--nameqiu镜像名|镜像ID

八.数据卷(1)哪些是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹docker 修改仓库地址,这个文件或文件夹以独立于docker文件系统的方式存在于宿主机中(2)解决了哪些问题?诸如:MySQL容器受损难以启动,须要删掉容器重新创建,这么数据库数据将会遗失

docker 修改仓库地址_docker指定仓库_docker修改默认仓库地址

(3)安装centos:7镜像:dockerpullcentos:7(4)做一个反例

将宿主机根目录中的qiu挂载到容器根目录中的qiu

(5)挂载数据卷

dockerrun-itd-v/qiu:/qiu--namemyMysqlmysql

-v:挂载数据卷格式:
	/宿主机目录(文件):/容器内目录(文件)
	目录必须是绝对路径
	如果目录不存在,
	则自动创建
	可以挂载多个数据卷

(6)查看数据卷是否挂载成功

dockerinspectmyMysql

docker 修改仓库地址_docker指定仓库_docker修改默认仓库地址

docker指定仓库_docker修改默认仓库地址_docker 修改仓库地址

(7)数据共享

首先步入容器,在容器的数据卷挂载目录中创建文件并写入内容

之后退出容器,查看宿主机挂载目录,可以看见同步更新的文件

(8)数据的同步

首先停止容器

之后在宿主机更改共享数据接出来启动后面的容器,

查看共享数据文件,发觉数据在容器中同步

(9)数据的持久化

首先删掉容器

之后在宿主机更改共享数据

接着重新创建容器并挂载数据卷

发觉数据在容器中恢复

(10)一个容器挂载多个数据卷,两个容器挂载同一个数据卷

dockerrun-it-v/dataVolumeHost31:/dataVolumeContainer31-v/dataVolumeHost32:/dataVolumeContainer32--namecentos3centos:7

dockerrun-it-v/dataVolumeHost:/dataVolumeContainer4--namecentos4centos:7

dockerrun-it-v/dataVolumeHost:/dataVolumeContainer5--namecentos5centos:7

docker指定仓库_docker 修改仓库地址_docker修改默认仓库地址

九.应用布署(1)布署tomcat

创建并运行tomcat容器

dockerrun-d-p8080:8080-v/docker/tomcat/webapps:/usr/local/tomcat/webapps-v/docker/tomcat/logs:/usr/local/tomcat/logs--nameqiu_tomcattomcat:8.5

打算一个index.html页面,使用ftp工具上到/docker/tomcat/webapps/qbb中

浏览器访问一下::8080/qbb/

也可以查看一下tomcat的日志:dockerlogs-tf--tail20atguigu_tomcat

(2)布署MySQL

dockerrun-d-p3306:3306-v/docker/mysql/conf:/etc/mysql/conf.d-v/docker/mysql/logs:/logs-v/docker/mysql/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root--nameatguigu_mysqlmysql:5.7

十.docker容器化技术和虚拟机技术

docker指定仓库_docker 修改仓库地址_docker修改默认仓库地址

十一.镜像制做(1)形式一:通过容器制做镜像①生成镜像

dockercommit容器名镜像名称:版本号

②压缩镜像

dockersave-o压缩文件名称镜像名称:版本号

③还原镜像

dockerload-i压缩文件名称

__EOF__

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复