linux软件安装
以前通过yum命令安装软件,是直接把软件安装到linux系统中,安装和卸载都比较麻烦,因为软件和系统是强关联
1.docker概念
docker是一种容器技术,解决软件和系统强关联关系,使得软件的安装和卸载非常方便。
docker是一种容器技术,可以将我们的应用以及依赖进行打包,制作出一个镜像(软件安装包以及相关依赖),可以在linux/windows中的docker中运行。
docker采用沙箱隔离机制,部署运行软件之间相互隔离,与操作系统也是隔离的。
2.主要功能
打包
:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
分发
:你可以把你打包好的
“
安装包
”
上传到一个镜像仓库,其他人可以非常方便的获取和安装
部署
:拿着
“
安装包
”
就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在
Windows/Mac/Linux
。
3.docker架构
docker
使用客户端
-
服务器架构。
Docker
客户端
(client)
与 守护进程
(Docker daemon)
进行对话,该
守 护进程 完成了构建、运行和分发
Docker
容器的繁重工作。
仓库(
Repository
):
是
docker
提供的一个用来保存镜像的仓库
.
镜像(
Image
)
:
镜像就是一个可执行的包
,
用来创建容器
,docker
中每一个软件就是一个镜像
.
容器(
Container
):
容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等
4.docker安装
Docker
可以运行在
MAC
,
Windows
,
CentOS
,
UBUNTU
等操作系统上,本课程基于
CentOS8
安装 Docker。
官网:
https://www.docker.com
1.安装
yum-utils,
配置镜像源需要使用
mkdir -p /etc/docker
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安装成功后并没有启动,
启动命令
systemctl start docker
关闭命令
systemctl stop docker
设置开机自动启动
systemctl enable docker
5.docker配置
主要是配置docker国内的镜像源地址。
配置镜像加速
在
etc
下创建
docker
目录
mkdir -p /etc/docker
进入
docker
目录
cd /etc/docker
创建
daemon.json
文件
touch daemon.json
修改文件
vim daemon.json
{
"registry-mirrors": ["https://dockerhub.icu"]
}
重载配置
systemctl daemon-reload
重启
systemctl restart docker
6.docker镜像命令
docker镜像命令,就是对镜像文件操作的命令
从远程仓库拉取镜像文件 docker pull 镜像名
查看本地镜像 docker images
删除镜像(删除镜像前,需要先删除对应容器) docker rmi 镜像名
加载本地镜像 docker 镜像 load
保存镜像到本地,生成tar文件 docker save
7.docker容器命令
运行容器 docker run 一系列配置 镜像名
查看容器 docker ps -a
启动容器 docker start 容器名
停止容器 docker stop 容器名
删除容器 (删除容器前,先停止容器) docker rm 容器名
查看容器日志 docker logs 容器名
进入到docker容器中 docker exec -it 容器名/容器id bash
8.数据卷挂载
由于容器内的目录操作起来不太方便,例如mysal数据目录,toncat项目部署目录.所以可以在linux(宿主机中创建一个目录,在运行镜像时,把宿主机中的目录和容器内目录建立映射关系,后期运行产生数据,就可以存储在宿主机中的映射目录中宿主机中的目录称为数据卷.
在执行
docker run
命令时,使用
-v
数据卷:容器内目录可以完成数据卷挂载。
实例:
创建
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
9.Docker安装nginx
nginx是一个有俄罗斯程序员开发的一款前端web服务器(只能运行前端项目)
运行占内存少,性能高,最大并发连接数量可以达到50000个。
加载本地镜像源
docker load -i nginx.tar
创建数据卷
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
其中
-v /opt/nginx/html
就是与容器中对应的一个在宿主机中的数据卷
我们只需要将文件部署到宿主机的
/opt/nginx/html
目录下即可
10.Docker安装Mysql
加载本地镜像源
docker load -i mysql.tar
安装
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
11.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