用docker容器来制作nginx镜像
实验环境:
cent os 7 服务器一台,访问客户机一台
实验步骤:
安装在线yum源
mkdir /root/dockerRPM
yum install --downloadonly --downloaddir=/root/dockerRPM docker* //下载yum源
生成yum列表
createrepo 下载路径(/root/dockerRPM),
安装docker软件包
yum -y install docker
查看centos系统的发行版
cat /etc/centos-release
注意:如果使用的是官方版的镜像,为避免下载速度太慢,可以修改yum源,改为163yun后者aliyun都可以,加快yum的安装速度。
创建一个yum源,然后使用本地yum来具体安装docket的包
vim /etc/yum.repod/yun.repo
[yum]
name=yum
baseurl=file:///root/dockerRPM
enabled=1
gpgcheck=0
清除yum缓存
yum clear all
安装docker软件包
yum -y install docker
设置docker主目录
LVM /var/lib/docker
收集和nginx有关的东西,将其放在docker的容器中,制作成镜像,必须先启动docker容器。
systemctl restart docker
docker search nginx
注意:有OK的为官方的东西,前面数字高的是下载热度高的docker.io/nginx
下载的docker集装箱所收集的一切关于nginx的东西。
docker pull docker.io/nginx
如果系统镜像是官网版的centos7,则yum源是海外的,所以需要用国内的yum源。则进行以下的操作:
1.dev.aliyun.com
阿里的docker镜像地址
2.登陆到阿里云的网站平台,需要使用淘宝账号
cr.console.aliyun.com
找到镜像加速栏,找到属于自己的镜像加速地址
注意:可以使用上述网址登陆阿里云网站,然后使用淘宝账号登陆,复制镜像加速地址,提高镜像的下载速度。
3.在docker主机下的/etc/ docker/daemon.json
在{}中加入
"registry-mirrors": ["https://93j1org2.mirror.aliyuncs.com"]
启动docker服务
systemctl restart docker
查看已有的镜像
docker images
后台运行容器
docker run -itd docker.io/nginx
-d 后台运行
-t 打开容器终端
-i 交互式
修改容器名称并运行容器
docker run -itd --name nginx1 docker.io/nginx
--name 容器名称 //修改容器的名称
查看所有已开启的容器
docker ps
查看所有的容器
docker ps -a
开启/关闭容器
docker start fd6 容器的id/容器的名称
docker stop fd6
登陆到容器,并打开shell环境
docker exec -ti nginx-1(容器ID/名称) /bin/bash
安装一个app的容器和一系统镜像的区别:
这个nginx的容器,精简了很多东西,有很多命令都不能用,只是想让nginx起来,就是装了一个app
如果安装的是一个镜像,在装app,则里面所以的命令都有,就像直接安装了一个系统
注意:容器多的时候用名字并ID好用,所以在容器多的时候尽量用名称,并且改成自己熟悉的名称就好。
给这个容器添加端口,让这个服务起来,app都这么做,本身没有IP地址,所以会映射一个端口,然后做服务。
docker run -ith -p 80 : 80 镜像名/ID
参数解释:
-p 指定端口
80:80 本机端口:容器端口
查看集装箱名称
docker images
容器用完就可以删除,是个只读的,删除就是关闭一个进程。
删除容器
Docker rm -f nginx-1
查询各个容器的id
docker ps -aq
删除所有容器
docker ps -aq | xargs docker rm -f
给docker镜像里nginx服务添加首页标记,需要进入docker镜像里。
docker exec -ti nginx-1(容器ID/名称) /bin/bash
echo "<h1>test</h1>" > /usr/share/nginx/html/index.html
验证:通过访问主机的IP地址,来缺点docker容器的nginx是可以正常使用的。