1、上线流程繁琐
2、资源利用率低
3、扩容/缩容不及时
4、服务器环境臃肿
5、环境不一致性
VM VS Container
1、使用最广泛的开源容器引擎
2、一种操作系统级的虚拟化技术
3 、依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)
4 、一个简单的应用程序打包工具
1、提供简单的应用程序打包工具
2 、开发人员和运维人员职责逻辑分离
3 、多环境保持一致性
应用程序打包和发布
应用程序隔离
持续集成
部署微服务
快速搭建测试环境
通过PaaS产品(平台即服务)
客户端 容器 镜像
官网地址:www.docs.docker.com
Docker版本: 社区版 Community Edition ,CE 社区版 Enterprise Edition ,EE
支持平台:
Linux(centOs,Debian,Fedora,Oracle)
Mac
Windows
安装前建议关闭S额Linux和firewalld
Linux中关闭SELinux的方法
1、临时关闭:输入命令setenforce 0,重启系统后还会开启。
2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
安装依赖包
yum install -y yum-utils
添加Docker软件包源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装Docker CE
yum install -y docker-ce
启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker
https://docs.docker.com/engine/install/centos
官方文档:https://docs.docker.com
阿里云源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce遇到报错——Error: Package:docker-ce-rootless-extras-20.10.3-3.el7.x86_64 (docker-ce-stable)
遇到了contain-SElinux的情况
所以我们只需要把他补上并重新安装一次就好了就行了!
如果是Linux是最小化安装环境下的时候是没有wget下载工具的,可以yum -y install wget安装一个
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install docker-ce
一个分层存储文件,不是一个单一的文件
一个软件的环境
一个镜像可以创建N个容器
一种标准化的交付
一个不包含Linux内核而又精简的Linux操作系统
Docker Hub是由Docker公司负责维护
地址:https://hub.docker.com
配置镜像加速器
vi /etc/docker/daemon.json
{
"registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"]
}
重启Docker:systemctl restart docker
通过docker info命令可以看到加速器了 以后通过pull push就可以加速
启动一个容器:docker run -d nginx 或 docker container run -d nginx 一样
列出本地有哪些镜像:docker image ls
如果本地没有镜像就从远程下载 docker run -d redis
查看镜像的历史步骤 : docker history nginx
查看镜像的详细信息:docker inspect nginx
从镜像仓库拉去镜像:docker pull nginx
设置端口:docker run -d -p 8080:80 nginx
docker run --help
docker run -d nginx
docker exec -it id bash
docker run -d centos 退出
docker run -d nginx 启动
docker run -it -d nginx 启动
docker run -it -d centos 启动
docker ps -l
docker run -d -e env=prod -p 88:80 --name webname -h webname --restart=always nginx
docker run -m="500m" --cpus="1" -d nginx 限制
docker ps 列出当前有哪些容器
docker exec webname ls
docker exec -it id/名称 bash 进入容器
部署完成路径:
docker run -it -d cenos
docker exec -it 名称 bash
ls
yum install nginx
docker commit 名称 test
docker ps -a 查看所有容器,包含退出 -q列出所有容器id
docker rm -f $(docker ps -q)
docker rm -f $(docker ps -qa)
例如:jenkins,gitlab 使用docker都是采用-v将他们自身产生的数据持久化宿主机
常用指令:
mkdir dockerfile
vi dockerfile
FROM centos:7
RUN yum install epel-release -y && \
yum install nginx -y
CMD ["nginx","-g","daemon off;"]
docker build -t nginx:v1 .
ls /opt/wwwroot/
docker run -d --name web2 -p 89:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx
docker run -d --name web2 -p 90:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx:v1