目录
一.docker概述
Docker 是一个应用打包、分发、部署的容器诞生于2013年,基于Go 语言实现。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任
何流行的Linux 机器上容器是完全使用沙箱机制,相互隔离,容器性能开销极低。
也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而
普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
在 linux 的软件安装中,是通过 yum 命令去安装软件,这种方式是直接将软件安装在linux中,这样安装和卸载都会很麻烦,因为软件和系统是强关联的。
docker是一种容器技术,用来解决软件和系统强关联关系(解决linux中安装删除软件费劲)的问题,使得软件的安装和卸载非常方便。
docker采用了沙箱隔离机制,部署运行的软件之间相互隔离。
docker的主要功能:
打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包。
分发:你可以把你打包好的"安装包"上传到一个镜像仓库,其他人可以非常方便的获取和安装。
部署:拿着"安装包"就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。
二.docker架构
docker使用客户端-服务器架构。 Docker客户端(client) 与 守护进程(Docker daemon)进行对话,该守护进程 完成了构建、运行和分发 Docker 容器的繁重工作。
**仓库(Repository):**是docker提供的一个用来保存镜像的仓库。
镜像(**Image):**镜像就是一个可执行的包,用来创建容器,docker中每一个软件就是一个镜像。
**容器(Container):**容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
三.docker安装
Docker可以运行在MAC,Windows,CentOS,UBUNTU等操作系统上,本课程基于CentOS8安装Docker。
1. **安装****yum-utils,**配置镜像源需要使用
yum install -y yum-utils
2. 设置更新docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
4. 测试docker版本
docker -v
5. 启动常用命令
docker安装成功后并没有启动,
启动命令
systemctl start docker
关闭命令
systemctl stop docker
设置开机自动启动
systemctl enable docker
四.docker的卸载
1.想要卸载 docker 就必须先要停止docker中的服务
systemctl stop docker
2.卸载
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 删除文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
五.docker的配置
配置镜像加速
1.在etc下创建docker目录
mkdir -p /etc/docker
2.进入docker目录
cd /etc/docker
3.创建daemon.json文件
touch daemon.json
4.修改文件
vim daemon.json
{
"registry-mirrors": ["https://dockerhub.icu"]
}
镜像源可能不适用,在更新之后要进行测试,不可以的话就需要在本地进行导入。
5.重载配置
systemctl daemon-reload
6.重启
systemctl restart docker
六.docker服务命令
1.docker镜像命令
查看镜像列表
docker images
从docker仓库拉取镜像文件
docker pull 镜像名
删除镜像
docker rmi 镜像名 镜像版本 / 镜像id
加载本地镜像
docker load -i 镜像文件名
从dockerfile构建镜像
docker build
保存镜像到本地,生成tar文件
docker save
注意:删除镜像前需要删除对应的容器。
2.docker容器命令
镜像运行起来就叫容器。
运行容器
docker run 一系列配置 镜像名
查看容器
docker ps -a
停止容器
docker stop 容器名
启动容器
docker start 容器名
删除容器(删除容器前,先要停止容器)
docker rm 容器名
进入到docker容器
docker exec -it 容器名 bash
退出容器
exit
镜像和容器:
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
docker 安装mysql时,需要修改root账号加密方式:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
七.数据卷挂载
数据卷是一个虚拟目录,是容器内目录和宿主机目录之间映射的桥梁。他将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据。
数据卷案例:
创建mysql数据卷:
mkdir -p /opt/mysql/data
安装
docker run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /opt/mysql/data:/var/lib/mysql \
mysql:8.0
八.docker安装nginx
Nginx是一款是由俄罗斯的程序设计师所开发高性能的 Web服务器(只能运行前端项目,不能运行
java项目)。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,
中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等等。
Nginx专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的
考验,据报告能支持高达50,000个并发连接数。
拉取镜像:
docker pull nginx:1.24
创建数据卷
mkdir -p /opt/nginx/html