概述
之前在Linux中安装软件,是直接安装在Linux操作系统中,软件和操作系统耦合度很高,不方便管理.因为Linux版本不同,环境也不同了.
是一种容器技术(软件),提供标准的应用镜像(包含应用+应用的依赖),我们就可以非常轻松的在docker中安装应用,每一个应用安装好后,就是一个独立的容器.
解决软件跨环境迁移的问题
主要功能:
打包:可以把软件以及软件依赖打包制作成一个镜像(安装包)
分发:把镜像上传到镜像仓库,方便别人获取和安装
部署:镜像可以一个命令使应用运行起来,不管在哪个系统,都可以自动模拟出一样的运行环境
docker安装
1.安装yum配置工具
yum install -y yum-utils
复制
2.配置docker的yum源
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.启动常用命令
docker安装成功后并没有启动, 启动命令 systemctl start docker 关闭命令 systemctl stop docker 设置开机自动启动(必须) systemctl enable docker
复制
6.卸载
1)停止服务
systemctl stop docker
复制
2)卸载
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
复制
3)删除文件
rm -rf /var/lib/docker rm -rf /var/lib/containerd
复制
docker配置镜像源
由于国外的镜像仓库目前不能访问,所以我们需要配置一个其他的镜像源地址
docker命令分为两大类:
1.镜像操作命令
从镜像仓库下载镜像到docker本地
docker pull eg: docker pull mysql:8.0
复制
查看本地镜像
docker images
复制
删除本地镜像
docker rmi 镜像名/镜像id eg: docker rmi mysql:8.0
复制
从dockerfile构建镜像
从docker保存镜像到linux本地(需要保存到linux中那个目录,进入到指定目录执行保存命令),生成tar文件
docker save 镜像名 > 镜像名.tar eg: docker save mysql > mysql.tar
复制
从linux本地 加载镜像到docker中
docker load < 镜像名.tar docker load < mysql.tar
复制
2.容器操作命令
通过镜像安装
docker run 镜像名
复制
查看容器
docker ps -a
复制
启动镜像
docker start 容器名
复制
停止容器
docker stop 容器名
复制
删除容器
docker rm 容器名
复制
docker log 容器名
安装mysql
1.下载mysql镜像
在线下载
docker pull mysql:8.0
复制
加载本地镜像
docker run -d -p 3306:3306 \ --name mysql \ --restart=always \ --privileged=true \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=root \ mysql:8.0
复制
--name:指定容器名称
--restart=always 自动启动
--privileged=true 拥有特权
-p:指定端口映射
-d:让容器后台运行
进入到容器
docker exec -it 容器名/容器id bash docker exec -it mysql bash
复制
登录mysql
mysql -uroot -proot
复制
修改root账号加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
复制
退出
exit
复制
数据卷挂载
容器是封闭的,与外界隔离的,如果需要操作容器内的内容不方便
创建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
拉取镜像
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:80
复制
其中
-v /opt/nginx/html
就是与容器中对应的一个在宿主机中的数据卷