当先锋百科网

首页 1 2 3 4 5 6 7

第一章 Docker概述

1. docker简介

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

2. 安装docker

准备安装环境,演示的系统为centos7。

##  1、yum 包更新到最新,更新yum源 
yum update
##  2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
##  3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
##  4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
##  5、 查看docker版本,验证是否验证成功
docker -v

3. docker架构

3.1 docker结构

docker架构图

3.2 配置镜像加速

默认情况下,从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器: USTC、阿里云、网易云、腾讯云

1) 创建文件并配置

在linux中自己创建:/etc/docker/daemon.json文件,并导入镜像地址(二选一)

中科大镜像地址
{
 "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
  阿里云镜像地址
{
  "registry-mirrors": ["https://x1am3gq3.mirror.aliyuncs.com"]
}
2) 重新启动docker
#重启
systemctl restart docker
#查看docker信息
docker info

第二章 Docker的命令

1. 进程相关命令

#启动docker服务:
systemctl start docker 
#停止docker服务:
systemctl stop docker 
#重启docker服务:
systemctl restart docker
#查看docker服务状态:
systemctl status docker 
#设置开机启动docker服务:
systemctl enable docker

2. 镜像相关命令

镜像:需要的软件(从仓库中下载(docker hub))

​ : 从仓库中下载镜像到本地(redis)

#查看镜像: 查看本地所有的镜像
docker images
docker images –q ##  查看所用镜像的id
#搜索镜像:从网络中查找需要的镜像
docker search 镜像名称
#拉取镜像:从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。
docker pull 镜像名称
#删除镜像: 删除本地镜像
docker rmi 镜像id ##  删除指定本地镜像
docker rmi `docker images -q`  ##  删除所有本地镜像
1) 查看镜像

docker images
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g5V8hgDb-1604837278486)(assets/1580870728642.png)]

2) 从仓库下载redis镜像到本地

查询镜像
docker search redis
下载镜像(拉取)
docker pull redis:5.0 (如果没有版本号,默认最新版)

3. 容器相关命令

容器:通过镜像启动的容器。

#查看容器
docker ps ##  查看正在运行的容器
docker ps –a ##  查看所有容器
#创建并启动容器
docker run 参数
#交互式创建容器:创建并启动容器,进入容器内部,通过exit退出容器(关闭容器) 
docker run -it --name=mycentos centos:7 /bin/bash
#守护式创建容器:创建并后台启动容器,不会进入到容器内部
docker run -id --name=mycentos2 centos:7 
#进入守护式容器
docker exec -it 容器名称 /bin/bash ##  退出容器,容器不会关闭
#停止容器
docker stop 容器名称
#启动容器
docker start 容器名称
#删除容器
docker rm 容器名称
#查看容器信息
docker inspect 容器名称doc

参数说明:

  • -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。

  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。进入容器内部。

  • -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。

  • -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器

  • –name:为创建的容器命名。

第三章 Docker应用部署

为了后续方便操作:关闭防火墙

#关闭防火墙 
systemctl stop firewalld
#防火墙和docker有关联,重启下docker
systemctl restart docker

1. 数据卷

什么是数据卷

数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步,一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。

数据卷:就是宿主机文件(目录)与容器中的文件(目录)挂载,可以通过操作宿主机文件(目录)的方式,完成容器中文件(目录)操作。

数据卷作用

容器数据持久化、外部机器和容器间接通信、容器之间数据交换

1.1 配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷

#启动容器,挂在数据卷
docker run -id --name=my_c1 -v /root/data/:/usr/data/  centos:7 
#进入容器
docker exec -it my_c1 /bin/bash
#查看共享文件

2. Redis部署

**需求:**在Docker容器中部署Redis,并通过外部机器访问Redis

**要求:**宿主机对外提供的端口 6378

操作步骤:

#搜索镜像
docker search redis
#拉取镜像
docker pull redis:4.0
#创建容器
docker run -id --name=my_redis -p 6380:6378 redis:4.0    

参数解释:

-p: 设置映射端口 ,宿主机端口:容器端口

3. tomcat部署

需求: 在Docker容器中部署Tomcat,并通过外部机器访问Tomcat部署的项目。

1、拉取镜像
	docker pull tomcat:8
2、运行成容器(挂载数据卷)
docker run -id --name=my_tomcat -p 8080:8080  -v /root/tomcat8:/usr/local/tomcat/webapps tomcat:8

3、上传本地tomcat中webapps中的文件(夹)到 宿主机的/root/tomcat8目录

4. nginx部署

需求: 在Docker容器中部署Nginx,并通过外部机器访问Nginx。

1、拉取镜像
	docker pull nginx
2、运行成容器
	docker run -id --name=my_nginx -p 80:80 nginx

在这里插入图片描述

5. mysql部署

**需求:**在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server。

容器中myql:默认存储数据的文件夹位置 /var/lib/mysql

在容器创建的时候:可以指定mysql的密码

​ -e MYSQL_ROOT_PASSWORD=123456

1、拉取mysql镜像
	docker pull mysql:5.7
2、运行成容器
docker run -id --name=my_mysql -p 3307:3306 -v /root/mysql:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7

总结

容器就是将软件打包成标准化单元,以用于开发、交付和部署。

  • 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
  • 容器化软件在任何环境中都能够始终如一地运行。
  • 容器赋予了软件独立性,使其免受外在环境差异的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

docker与虚拟机比较

相同:

  • 容器和虚拟机具有相似的资源隔离和分配优势

不同:

  • 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。

  • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

Docker虚拟机
启动速度秒级分钟级
硬盘使用一般为MB一般为G
CPU/内存消耗
支持数量上百个十几个
可视化管理不成熟成熟