Docker学习资料入门篇.docx
《Docker学习资料入门篇.docx》由会员分享,可在线阅读,更多相关《Docker学习资料入门篇.docx(10页珍藏版)》请在冰豆网上搜索。
Docker学习资料入门篇
Docker学习资料
入门篇
第一章Docker容器的认识
1.什么是容器?
容器是隔离的环境运行的一个进程,如果进程停止,容器就会销毁。
。
目前通常的操作是在云计算平台或者虚拟化平台运行的虚拟化主机上使用docker服务。
2.Docker的安装
2.1.安装docker必要条件
(1)#关闭selinux
#setenforce0(临时关闭)
#sed-i's#SELINUX=enforcing#SELINUX=disabled#g'/etc/selinux/config(永久关闭)
(2)#关闭系统防火墙
#systemctlstopfirewalld
#systemctldisablefirewalld
2.2.#安装docker
#yum-yinstalldocker
(1)查看docker检测docker是否完成安装—查看安装版本
#docker-v
(2)Docker的常用命令
docker的启动
#systemctlstartdocker
dcoker的开机启动
#systemctlenabledocker
docker的关闭
#systemctlstopdocker
docker的重启
#dockerrestartdocker
docker的版本
#dockerversion
2.3.docker镜像加速器配置
vi/etc/docker/daemon.json
{
"registry-mirrors":
["参看国内地址"]
}
3.Docker的浅层认知
(1)Docker是一个C/S架构,分为客户端和服务端。
(2)Docker的主要组件有:
镜像、容器、仓库、网络、存储
(3)启动容器必须需要一个镜像,仓库中只存在存储镜像(容器-镜像-仓库)
(4)Docker是一种软件的打包技术。
(5)Docker的主要目标是“构建,运输,处处运行,部署服务,环境问题”
第二章Docker常用的操作命令
1.Dcoker镜像常用的命令
1.1.尝试运行一个nginx的docker镜像,并且可以访问nginx的首页。
#dockerrun-d-p80:
80nginx
run创建并允许一个容器
-d放在后台
-p端口映射
nginx运行docker镜像的名字
1.2.docker镜像的搜索
#dockerserachcentos
搜索centos的镜像
#镜像下载建议优先选择官方提供镜像,其次选择好评较多的镜像。
1.3.获取镜像
dockerpullcentos
拉取centos镜像。
默认是最新版【dockerpullcentos:
7拉取7.0版本centos】
1.4.本地镜像查询
dockerimagels
#查询本地镜像
1.5.镜像的导出
dockerimagesave-odcoker_cenos_7.tar.gzcentos:
7
将centos7镜像导出名称为dcoker_centos_7.tar.gz
1.6.镜像的删除
dockerimagermcentos:
7
将centos7的镜像删除
1.7.docker镜像的导入
dockerimageload-i【镜像名】
dockerimageload-i/root/dcoker_centos_7.tar.gz
2.docker容器常用命令
2.1.示例使用本地额8080端口运行一个nginx的容器。
#dockerrun-d-p8080:
80nginx
运行一个最新的nginx容器在后台运行,并使用服务器8080端口转发容器的80端口
2.2.运行一个centos7的容器并分配一个终端。
dockerrun-it--namecentos7centos:
7/bin/bash
-it分配式的终端
--name指定容器的名字
/bin/sh覆盖容器的初始命令
启动centos7的容器,命名容器名为centos7并进入docker中。
Ctrl+D退出容器。
(3)查询容器
#dockercontainerls查询正在运行的容器
#dockercontainerls查询所有容器
(4)创建并运行容器
dockerrunimage_name
dockercreate创建容器
dcokercreatecentos:
7centos7test01
使用centos7镜像创建一个centos7test01的容器
dockerstart启动容器
(5)启动容器
dcokerstart容器名称
(6)关闭一个容器
dockerstop容器名称或id
(7)强制关闭一个容器
dockerkill容器名称或id
(8)查查最近启动的一个容器
dockercontainerls-a-l
(9)删除一个容器
dockercontainerrm
(10)批量删除容器
dockercontainerrm-f
dockerrm-f`dockerps-a-q`
删除所有容器
(11)进入容器
#dockercontainerattach容器ID或者名字
#此命令不是很常用,因为它会跟同一个终端画面同步,类似桌面共享。
#dcokerexec-it容器id或容器名称/bin/bash
此命令进入容器,重新分配终端,画面不同步。
Ctrl+p,Ctrl+q离开attch模式。
3.Docker容器运行的核心
Docker的核心概念
总结:
docker容器内的第一个进程(初始命令)必须一直处于前台运行的状态(必须夯住即程序可一直运行),否则这个容器会处于退出状态!
业务在容器中运行:
初始命令夯住启动服务。
万能命令:
tail-F文件名称(文件路径名称可以随意写-F的意思是直至发现这个文件)
第三章Docker容器的网络访问与数据持久化
1.Docker容器网络使用的技术
Docker容器使用的网络技术是iptable的NAT网络转发技术。
Docker的端口映射采用iptable的nat模式实现。
1.1.基本使用方式
端口映射模式是TCP协议。
(1)端口映射
#dockerrun-d-p81:
80nginx
将宿主机的81端口映射给docker的80端口
(2)IP地址及端口映射
#dcokerrun-d-pIP:
81:
80nginx
将宿主机IP地址的81端口映射给nginx容器的80端口
#dockerrun-d-PIP地址:
:
80nginx
宿主机随机分配端口映射给容器80端口
(3)UDP协议端口映射
#dockerrun-d-p81:
80/udpdns
将宿主机的udp81端口映射给容器的80端口
(4)多端口映射
#dockerrun-d-p81:
80-p2121:
21nginx
将宿主机的81端口映射个容器的80端口,以及将宿主机的2121端口映射给容器的21端口
(5)随机分配端口
dockerrun-P:
80nginx
宿主机随机分配端口给容器80端口映射
2.Docker容器的数据持久化
2.1.docker的数据持久化
(1)复制文件到docker容器中
dockercontainercp文件(夹)名容器名(id):
容器中的位置
#(/usr/share/nginx/html容器中nginx的路径)
演示:
将一个web网站通过容器存储的方式发布出来。
#dockercontainercpwebdir/moban5766/.0c5f01ede651:
/usr/share/nginx/html
(将宿主机webdir/moban5766/下的所有文件复制到nginx的html目录下)
#dockercontainerrestart容器ID(重启容器)
(2)将本地文件挂载到docker的指定目录
dockerrun-d-p80:
80-v指定要挂载的目录:
指定要挂载到的目录镜像容器
演示:
dockerrun-d-p80:
80-v/root/webdir/moban5766:
/usr/share/nginx/htmlnginx
(将宿主机的将宿主机webdir/moban5766挂载到nginx的html目录下)
执行命令不报错,但是没有挂载上通常是因为selinux没有关闭。
3.Docker数据卷
(1)什么是数据卷
数据卷及文件或目录(第一次创建的数据卷是空的,会将容器中的数据复制到的数据卷中,如果数据卷里面有数据会将数据挂载到容器中)
(2)数据卷的挂载
dockerrun-d-p80:
80-v数据卷名称(自己新建的名字或者已有的名字):
挂载到容器的目录镜像名:
版本号
#dockerrun-d-p80:
80-vlengchao:
/usr/share/nginx/htmlnginx
(3)数据卷的查看
#dockervolumels
(4)数据卷的信息查看
#dockervolumeinspect
(5)数据查看
根据数据卷的信息查看数据卷中的数据
扩展命令:
netstat-lntcp查看TCP端口
netstat-lntup查看TCP和UDP端口
pkill-9服务名称强制断掉服务
第四章项目综合实践
使用一个Nginx容器设置多站点访问。
(1)80端口为默认端口,访问默认主页。
(2)81端口利用数据卷挂载一个web网站页面。
(3)查询启动容器的ip地址。
(4)删除容器。
执行过程:
难点Nginx的多站点配置。
操作指导:
dockerrun-d-p80:
80-p81:
81-vlengchao:
/opt-v/root/webconf/:
/etc/nginx/conf.dnginx
/etc/nginx/conf.d是nginx配置加载目录
配置文件编写
server{
listen81;
server_name_;
root/opt;
indexindex.htmlindex.hml;
}
server{
listen80;
server_name_;
root/usr/share/nginx/html;
indexindex.htmlindex.hml;
}
第五章Docker镜像的制作
1.手工制作Docker镜像
1.1.手工生成镜像
#dockercontainercommit25f5f9c99730docker_study_nginx:
v1
注释:
dockercontainercommit容器ID(名称)生成的镜像名称:
版本号
使用的镜像ID为25f5f9c99730生成的镜像为docker_study_nginxv1
1.2.查看生成的镜像
#dockerimagels
查看镜像docker_study_nginxv1是否存在。
1.3.使用生成的镜像运行容器
#dockerrun-d-p81:
80docker_study_nginx:
v1
2.自动创建Docker镜像
2.1.