目录
概述
回顾Linux安装软件
以前在Linux中安转软件,是直接安装在Linux操作系统中,软件和操作系统耦合度很高,不方便管理。因为Linux版本不同,环境也就不同
什么是docker
docker 是一个应用打包、分发、部署的容器
docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任 何流行的Linux 机器上
容器是完全使用沙箱机制,相互隔离
docker是一种容器技术(软件),提供标准的应用镜像(包含应用+应用的依赖),我们就可以非常轻松的在docker中安装应用,每一个应用安装好后,都是一个独立的容器。
docker 可以解决解决软件跨环境迁移的问题
主要功能:
打包:将软件以及软件的依赖打包制作成一个镜像(例如后面把SpringBoot和jdk打包成一个镜像)
分发:可以把打包好的镜像上传到镜像仓库,或者其他的Linux系统中
部署:可以非常方便的进行安装,只需要一个命令即可
架构
仓库(Repository):是docker提供的一个用来保存镜像的仓库.
镜像(Image):镜像就是一个可执行的包,用来创建容器,docker中每一个软件就是一个镜像.
容器(Container):容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
docker安装
1.安装yum配置工具
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 -v
5.启动,关闭,开机启动
启动命令
systemctl start docker
关闭命令
systemctl stop docker
设置开机自动启动
systemctl enable docker
docker卸载
停止服务
systemctl stop docker
卸载
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
删除文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
docker配置镜像源
由于国外的镜像仓库目前不能访问,所以需要配置一个其他的镜像源地址
配置镜像加速
在etc下创建docker目录
mkdir -p /etc/docker
进入docker目录
cd /etc/docker
创建daemon.json文件
touch daemon.json
修改文件
vim daemon.json
点击i,进入编辑模式
{
"registry-mirrors": ["https://dockerhub.icu"]
}
输入完成后,按 esc 键,在按 shift + : 会出现一个冒号:在其后面输入wq,保存并退出
重载配置
systemctl daemon-reload
重启
systemctl restart docker
docker服务命令
docker命令分为两大类
1.镜像操作命令
从镜像仓库下载镜像到docker本地
docker pull
例如:docker pull mysql:8.0
查看本地镜像
docker images
删除docker镜像
docker rmi 镜像名:版本/镜像id
从docker中保存镜像到Linux本地(需要保存到Linux中哪个目录,进入到指定目录执行保存命令)
docker save 镜像名 > 镜像名.tar
从Linux本地加载镜像到docker中
docker load < 镜像名.tar
2.容器操作命令
通过镜像安装
docker run 镜像名
查看容器
docker ps -a
启动容器
docker start 容器名
停止容器
docker stop 容器名
删除容器(卸载)
docker rm 容器名
查看容器日志
docker logs 容器名
安装Mysql
1.下载mysql镜像(两种)
在线下载 docker pull mysql:8.0
加载本地镜像 docker load < 镜像名.tar
2.安装mysql容器
docker run -d -p 3306:3306 --name mysql --restart=always --privileged=true \
-e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root mysql:8.0
docker run命令的常见参数:
--name:指定容器名称
--restart=always: 自动启动
--privileged=true: 拥有特权
-p:指定端口映射
-d:让容器后台运行
3.进入到容器
docker exec -it 容器名/容器id bash
4.登录mysql
mysql -uroot -proot
5.修改root账号加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
6.退出
exit
数据卷挂载
容器是封闭的,与外界是隔离的,如果需要操作容器内的文件,就不方便,可以将容器内的目录 与 容器外(Linux)中的目录进行映射 挂载
数据卷是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
创建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
安装nginx
nginx是一个高性能的前端程序的服务器,支持最大五万个并发连接
Nginx是一款是由俄罗斯的程序设计师所开发高性能的 Web服务器(只能运行前端项目,不能运行 java项目)。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,
中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等等。
拉取镜像
docker pull nginx:1.24
创建数据卷
mkdir -p /opt/nginx/html
安装命令
docker run -d -p 80:80 --name nginx --restart=always --privileged=true \
-v /opt/nginx/html:/usr/share/nginx/html nginx:1.24
访问
自己的ip