docker是什么?
Docker 是一个应用打包、分发、部署的容器诞生于 2013 年,基于 Go 语言实现Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上容器是完全使用沙箱机制,相互隔离容器性能开销极低你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。总结 : docker 是一种容器技术,解决软件跨环境迁移的问题
docker的主要功能
打包 :就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包分发 :你可以把你打包好的 “ 安装包 ” 上传到一个镜像仓库,其他人可以非常方便的获取和安装部署 :拿着 “ 安装包 ” 就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。
Docker架构
仓库( Repository ): 是 docker 提供的一个用来保存镜像的仓库 .镜像( Image ) : 镜像就是一个可执行的包 , 用来创建容器 ,docker 中每一个软件就是一个镜像 .容器( Container ): 容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
docker的安装
安装yum-utils,配置镜像源需要使用
yum install -y yum-utils
设置更新docker镜像源
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
测试docker版本
docker -v
启动常用命令
docker安装成功后并没有启动,启动命令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/dockerrm -rf /var/lib/containerd
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
Docker服务命令
Docker镜像命令
镜像列表
docker images
从docker仓库拉取镜像到本地仓库
docker pull
删除本地镜像
docker rmi 镜像名/镜像id
从dockerfile构建镜像
docker build
保存镜像到本地,生成tar文件
docker save
载入本地镜像
docker load
Docker容器命令
创建一个新的容器并运行docker run 镜像名查看容器docker ps -a启动容器docker start 容器名停止容器docker stop 容器名删除容器docker rm 容器查看容器日志docker logs 容器名
注:
Docker安装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进入到容器docker exec -it 容器名/容器id bash登录 mysqlmysql -uroot -proot修改 root 账号加密方式ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';退出exit
docker run命令的常见参数:
--name :指定容器名称--restart=always 自动启动--privileged=true 拥有特权-p :指定端口映射-d :让容器后台运行
数据卷挂载
什么是数据卷挂载:
数据卷案例
创建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:
Nginx 是一款是由俄罗斯的程序设计师所开发高性能的 Web 服务器 ( 只能运行前端项目 , 不能运行java 项目 ) 。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等等。Nginx 专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的考验,据报告能支持高达 50,000 个并发连接数。
安装步骤
拉取镜像
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:...
Linux 下使用 Docker 安装 redis
redis 是什么:
Redis 是一个开源的,使用 C 语言编写的,支持网络交互的,内存中的 Key-Value 数据结构存储系统,支持多种语言,它可以用作数据库、缓存和消息 中间件
特点:
Redis 将数据存储在内存中,也支持数据的持久化,可以将内存中的数据保持 在磁盘中,重启的时候可以再次加载进行使用。 性能极高 , Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s 。 Redis 供 list,set,zset,hash 等数据结构的存储。 原子 – Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操作全 并后的原子性执行。 Redis 分布式集群化扩展性极,高即 master-slave(主-从)模式
为什么使用 redis
随着 web3.0 的时代到来,传统的关系型数据库在大量的访问压力出现了一些 性能问题,如连接数量问题,IO瓶颈问题等,此时需要使用redis对部分数据进行缓 存,或者将某些数据直接存储在 redis 中,以减少对关系型数据库的访问压力. 当然 redis 数据库也是不能完全替代关系型数据库的,他们是相互依赖的
安装步骤
创建 redis 配置文件和数据映射挂载卷
mkdir -p /opt/redis/conf
mkdir -p /opt/redis/data
复制 redis.conf 文件到/opt/redis/conf 目录下(注意,此文件已设置密码为 123
拉取镜像
docker pull redis:6.0
安装命令
docker run -d -p 6379:6379 \ --name redis \ --restart=always \ --privileged=true \ -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /opt/redis/data:/data \ redis:6.0