1.容器介绍
容器是轻量级虚拟化技术,用于快速构建业务环境,便于业务迁移,避免兼容性问题
1.1区别
与传统的虚拟化技术相比:容器创建速度快(秒级)、无虚拟硬件、共享物理机内核、IO速度快
1.2容器三要素
容器、镜像、仓库
1.3容器核心技术
- namespace 命名空间
实现资源(文件、目录、用户、端口、进程)隔离
- cgroup
实现容器的资源限制
1.4容器管理软件
docker:docker-ce、docker-ee
podman
containerd
2.安装docker
配置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
配置国内镜像仓库(阿里云每人独立)
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://rywdmoco.mirror.aliyuncs.com"]
}
2.1镜像基础操作
查看镜像
docker images
搜索镜像
docker search 关键字
下载镜像
docker pull 镜像名称:标记
导入镜像
docker load -i centos:7
导出镜像
docker save -o centos.tar centos:7
3.容器基础操作
创建容器
docker run -tid centos:7 /bin/bash
-t 提供操作终端
-d 后台运行
/bin/bash 容器的运行依赖于一个持续的进程
查看镜像的详细信息
docker image inspect 镜像名
查看容器
docker ps -a
查看容器详细信息
docker inspect 容器名称
查看日志
docker logs 容器名
连接登录容器
docker exec -ti 容器名称 bash
bash 或执行其他命令
删除容器
docker rm -f 容器名
启动/停止/重启容器
docker {start|stop|restart} 容器ID/名称
杀死容器
docker kill 容器名称
导出\导入容器
docker export -o app.tar app //导出容器
docker import app.tar //导入容器
指定容器名称、主机名
docker run -tid --name=test1 --hostname=test1 centos:7
设置容器开机自启动
docker run -tid --name=test2 --hostname=test2 --restart=always centos:7
发布容器服务
docker run --tid --name=test3 --hostname=test3 -p 80:80 nginx:1.18
-P 随机发布端口
传递环境变量: -e 变量名称=值
docker run -tid --name=test4 --hostname=test4 -e MYSQL_ROOT_PASSWORD=redhat mysql:5.7
持久化存储
docker run -tid --name=test5 --hostname=test5 -v /opt/test5:/test5 centos:7
定义容器的通信别名 --link=容器名称:别名
docker run -tid --name=test6 --hostname=test6 --link=test:test6 centos:7
容器的资源限制 cpu/内存
docker run -tid --name=test7 --cpus=2 --memory=800M centos:7
docker inspect test8 | grep -i memory
查看容器资源限制