Docker 是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在 Linux 操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。
1、Docker安装
相对而言,Linux 上安装 Docker 是最容易的,其次是 Mac ,最后是 Windows ,Windows 因此要装的东西比较多,官方也提供了两个不同的安装包,支持不同的 Windows 的不同版本,一个是针对 Win10 的安装引导程序,还有一个是兼容性较好的 Toolbox ,但是在 Windows 上运行 Docker ,后期在虚拟目录等方面还会遇到各种问题,所以这里不建议大家在 Windows 中安装 Docker ,有 Mac 的上 Mac (Mac 上安装 Docker 就像安装普通软件一样),没有 Mac 的装 Linux 虚拟机,再装 Docker 即可,这里我就先以 CentOS 上安装 Docker 为例,来说说 Docker 安装。
//更新yum
yum update
//更新第三方软件库
yum install epel-release
//安装Docker服务
yum install docker
//然后启动 Docker 服务
service docker start
//测试安装是否成功
docker -v
2、安装docker-compose
两种方式:
第一种:
$ curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
// 测试安装成功命令
$ docker-compose --help
第二种:可以通pip方式安装(下面的安装方式如果报错 请沿用上面的安装方式):
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
yum install -y python-devel python34-devel gcc
pip install docker-compose
如果pip安装docker-compose时出现如下报错时:
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError
请使用此命令安装:
pip install docker-compose -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
3、配置阿里镜像加速
配置公用加速器:
vi /etc/docker/daemon.json
加入
{
"registry-mirrors": ["https://i3gzpg87.mirror.aliyuncs.com"]
}
重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
4、限制Docker容器日志
受限于磁盘空间大小,不能让docker容器日志无限制增长,需要对其进行限制:
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://i3gzpg87.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
max-size=500m,意味着一个容器日志大小上限是500M,
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。
修改后,docker需要重新加载配置文件和重启。
如果报错,应该是和/etc/sysconfig/docker中的配置冲突
vi /etc/sysconfig/docker 找到 OPTIONS=’—selinux-enabled —log-driver=journald —signature-verification=false’ 删除其中的—log-driver=journald默认日志驱动的指定 然后再重启docker服务即可
5、运用docker-compose批处理命令
以nginx为例:
a.在home目录下新建文件夹test,并新建文件 docker-compose.yml,文件内容
version: '2'
services:
nginx:
image: nginx
restart: always
container_name: sw-nginx
ports:
- "8080:80"
将nginx的80端口映射为8080
然后在test下面执行命令:
docker-compose up #前台运行
然后,在浏览器访问 http://ip:8080/ 会出现 nginx 欢迎界面,然后在命令界面Ctrl + C退出运行
进入test目录,执行命令
docker-compose up -d #后台运行
docker ps #查询运行情况
// 找到NAMES列,看到运行容器 sw-nginx
docker-compose logs --tail 333 --follow #批处理查看日志命令
// 看到打印LOG,然后在浏览器访问 http://ip:8080/ 看LOG刷新,Ctrl + C退出运行
docker logs sw-nginx --tail 333 --follow #单节点查看日志命令
// 看到打印LOG,然后在浏览器访问 http://ip:8080/ 看LOG刷新,Ctrl + C退出运行
docker-compose down #停止运行
docker ps #查询运行情况