docker详解

本文深入探讨了Docker技术,从云服务的lass、PaaS、SaaS概念出发,介绍了Docker作为PaaS技术的角色。接着,阐述了Docker的虚拟化特性和优势。详细讲解了Docker的安装过程,包括Redhat和Debian系列操作系统的安装步骤。重点讨论了Docker的使用,包括镜像管理、容器操作,以及如何部署MySQL和Tomcat。最后,强调了Docker在资源利用率和部署便捷性方面的优点。

目录

一、认识docker

1)云服务

1.分为lass、pass、saas

2.docker属于应用于pass的一项技术,也可以应用于saas

2)docker概念

1.虚拟化技术

2.docker的特点

二、docker核心内容

1)docker组成

2)安装docker

1.redhat系列操作系统上安装

2.debian系列操作系统上安装

3)使用docker

1.查看本地所有镜像

2.更换仓库注册中心来加速

3.管理镜像

4)操作容器

1.创建容器

2.启动容器

3.进入容器

4.停止容器

5.查看容器

6.删除容器

7.文件复制

5)部署mysql

1.获取mysql镜像

2.创建mysql容器

3.开启容器

4.测试登录mysql

6)部署tomcat

1.获取tomcat镜像

2.创建tomcat容器

3.开启容器

4.测试连接tomcat


一、认识docker

1)云服务

1.分为lass、pass、saas

lass:基础设施即服务,只提供操作系统;

pass:平台即服务,只提供含平台(mysql、redis、tomcat、nginx等平台)的操作系统;

saas:软件即服务,提供含部署好的软件(OA、ERP等软件)的操作系统(当然也包含了平台)。

2.docker属于应用于pass的一项技术,也可以应用于saas

2)docker概念

1.虚拟化技术

docker属于一种虚拟化技术。

虚拟化技术分为硬件虚拟化、软件虚拟化(如虚拟机、docker)。软件虚拟化是指通过某种技术,实现多个人协作的使用一台电脑,并且每个人都像是在使用一台电脑一样。硬件虚拟化是指网络、内存、存储等打破不可分割进行重组高性能硬件可以补偿低性能硬件。

软件虚拟化又分为全虚拟化和os虚拟化,虚拟机属于全虚拟化,docker属于os虚拟化。

全虚拟化虚拟出的是整个子操作系统,虚拟出来的子操作系统可以是任何类型系统。os虚拟化虚拟出的如果是软件,则为当前操作系统的一部分,相当于共用当前操作系统,虚拟出来的如果是子操作系统,子操作系统只能和当前操作系统一样为linux。

2.docker的特点

类似虚拟机,是一个创建容器的工具。和虚拟机的区别在于,不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。占用空间小,启动快,资源利用率高(一台主机可以同时运行几千个Docker容器)。

docker的优点:(1)解决部署一处成功,处处成功;(2)隔离性,各个应用互相隔离;(3)迁移方便。

二、docker核心内容

1)docker组成

镜像image、容器container、仓库repository、仓库注册中心registry

镜像:类似于一个java类;


容器:通过镜像可以创建容器。类似于一个java对象;


仓库:可以存放多个镜像。类似于java的一个包。例如一个mysql仓库,有多个版本的镜像,甚至不同的制作者制作的同一版本,也是不同的镜像,通过镜像的tag区分;

【仓库名mysql+冒号+标签名5.6,就是镜像名mysql:5.6】


仓库注册中心:仓库源。分为公有和私有,公有的国外的有(dockerhub【官方源】),国内的有(ustc、网易云、阿里云等),国内的只是加速,切换成国内的相当于使用了加速器连接官方源。本地的就是私有的。

2)安装docker

1.redhat系列操作系统上安装

//安装

yum install -y docker  

//启动

systemctl start docker

systemctl start docker.service

//设置为开机自启动

systemctl enable docker

2.debian系列操作系统上安装

sudo apt-get update

如果apt-get太慢,可以更换为国内的源

(1)备份原来的源:
sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
(2)创建新的源
sudo vim /etc/apt/sources.list

复制以下内容并保存(阿里云源):
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

(3)更新apt软件源
sudo apt-get update

 

//安装

apt-get install -y docker.io

安装完成后,只有管理员有运行权限,可以把当前用户加到docker组(安装好docker就会默认创建的)

//启动

systemctl start docker

//设置为开机自启动

systemctl enable docker

3)使用docker

1.查看本地所有镜像

docker images

2.更换仓库注册中心来加速

(1)第一步

vi /etc/docker/daemon.json  //没有该文件就创建一个

添加:

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

查看阿里云镜像仓库注册中心地址:

进入控制台,然后

(2)第二步

sudo systemctl daemon-reload   //重新加载配置文件

 sudo systemctl restart docker    //重启docker

3.管理镜像

查找:

docker seach 仓库名;   //在官方仓库注册中心上查找镜像

获取:

docker pull 仓库名:标签;  //如docker pull centos:7就会自动获取centos7最新的版本(标签一般是版本号),如果要指定版本需要的官方网站hub.docker.com去查看

删除:

docker rmi 仓库名:标签;    //或者docker rmi 镜像ID

docker rmi $(docker images -q)  //删除所有镜像

查看:

docker images  //查看本地所有镜像

导入导出:

导出:docker save repository:tag/imageld> /opt/保存名字.tar.gz   //导出到宿主机opt目录下

导入:docker load</opt/保存名字.tar.gz

手动制作镜像:

假如原来有一个centos7容器,之后在容器中装了jdk、tomcat等软件。可以使用如下命令把当前centos7制作成一个镜像:

dokcer commit centos:7 新的镜像名  //制作镜像

docker run -di -name 容器名 -p 9999:8080 新的镜像名  //使用制作的镜像创建容器(宿主机映射端口9999:容器内占用端口8080【安装的tomcat占用了该端口】,-p会宿主机的9999端口映射到容器内的8080端口)

假如原来有一个mysql5.7容器,之后在mysql容器存储了很多数据。可以使用如下命令把当前mysql5.7制作成一个镜像:

dokcer commit mysql:5.7 新的镜像名  //制作镜像

docker run -di -name 容器名 mysql -p 34306:3306 新的镜像名  //使用制作的镜像创建容器(宿主机映射端口34306:容器内占用端口3306,-p会宿主机的34306端口映射到容器内的3306端口)

4)操作容器

1.创建容器

用指定获取到的镜像,生成一个容器
docker run -d --name 容器名 repository:tag    //或者docker run-d--name 容器名 imagelD

2.启动容器

docker start 容器名

3.进入容器

docker exec -it 容器名 /bin/bash   //进入正在运行的容器

exit    //退出进入交互界面,退出后容器依然运行起的

4.停止容器

docker stop 容器名

5.查看容器

docker ps   //查看正在运行的容器

docker ps -a   //查看所有的容器

docker inspect 容器名  //查看容器内部基本信息

6.删除容器

docker rm 容器名

docker rm 'docker ps -a -q'  //删除所有容器

7.文件复制

cp /opt/1.txt 容器名:/mysql/bin     //复制宿主机文件1.txt到容器的mysql/bin目录里面

5)部署mysql

1.获取mysql镜像

docker pull mysql:5.7; 

2.创建mysql容器

docker run -di -name 容器名 mysql -p 34306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7      //-p代表端口映射(宿主机映射端口34306:容器内占用端口3306)、-e代表配置环境变量(设置root账号密码为123456)、最后的mysql:5.7 为镜像名(即仓库名+冒号+标签)

3.开启容器

docker start 容器名

4.测试登录mysql

在其他电脑登录容器的mysql:mysql>mysql -h 宿主机IP地址 -P 34306 -u root -proot  //注意端口是宿主机映射端口34306

6)部署tomcat

1.获取tomcat镜像

docker pull tomcat:7; 

2.创建tomcat容器

不创建路径映射方式:docker run -di -name 容器名 tomcat -p 9000:8080 mysql:7      //-p代表端口映射(宿主机映射端口9000:容器内占用端口8080)、最后的tomcat:7 为镜像名(即仓库名+冒号+标签)

创建路径映射方式:docker run -di -name 容器名 -v /opt/myWebapps:/usr/local/tomcat/webapps -p 9000:8080 --privileged=true tomcat:7  //容器中tomcat的webapps路径为/usr/local/tomcat/webapps,通过-v参数,把宿主机的/opt/myWebapps映射到容器中。映射之后,只需把web应用的war放到宿主机的/opt/myWebapps目录,就可以访问该web应用了

3.开启容器

docker start 容器名

4.测试连接tomcat

在其他电脑打开网页地址输入:宿主机ip地址:9000 //注意端口是宿主机映射端口9000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值