系统 | Ip | 要求 |
Centos7.4 | 192.168.1.40 | 部署一台容器,在容器上安装nginx服务,配置网页,将运行完成的容器做成镜像 |
Centos7.4 | 192.168.1.50 | 将上面制作成的镜像导入到这台服务器上,:并且运行,测试访问网页内容是否相同 |
要求:
基于Centos:7 镜像运行一个容器,并且,在这个容器内部署Nginx服务。
1):下载镜像 docker pull centos:7
2):运行容器 docker run -it --name webapp --restart=always centos:7
3) : 进入容器,开始部署nginx服务:
[root@docker ~]# docker cp nginx-1.14.0.tar.gz webapp:/root ###将nginx包导入到容器内
[root@docker ~]# docker exec -it webapp /bin/bash ###进入容器内
[root@0e3d9e4271d5 ~]# ls
anaconda-ks.cfg nginx-1.14.0.tar.gz ###查看确认导入进来了
[root@0e3d9e4271d5 nginx-1.14.0]# cd nginx-1.14.0
[root@0e3d9e4271d5 nginx-1.14.0]# tar zxf nginx-1.14.0.tar.gz ###解压缩
[root@0e3d9e4271d5 nginx-1.14.0]# yum -y install gcc pcre-devel openssl-devel zlib-devel
[root@0e3d9e4271d5 nginx-1.14.0]# useradd -M -s /sbin/nologin nginx
[root@0e3d9e4271d5 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@0e3d9e4271d5 nginx-1.14.0]# yum -y install make ###最小化安装的系统所以需要安装
[root@0e3d9e4271d5 nginx-1.14.0]# make && make install
[root@0e3d9e4271d5 nginx-1.14.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin[root@0e3d9e4271d5 nginx-1.14.0]# nginx
[root@0e3d9e4271d5 nginx-1.14.0]# cd /usr/local/nginx/html/
[root@0e3d9e4271d5 html]# ls
50x.html index.html
[root@0e3d9e4271d5 html]# echo this is a testweb in container > index.html
[root@0e3d9e4271d5 html]# curl 127.0.0.1
this is a testweb in container
[root@0e3d9e4271d5 /]# yum provides ip ###查看那个组件支持后面的命令
[root@0e3d9e4271d5 /]# yum -y install net-tools ### 安装支持容器查看ip
查看ip退出,
[root@0e3d9e4271d5 /]# exit
exit
[root@docker ~]# curl 172.17.0.2
this is a testweb in container
将运行完成的容器,制作成一个镜像,然后再根据此镜像运行一个容器,保证两个容器的主页面内容是一样的:
docker commit webapp lrb1:12-10
格式:[docker commit 容器名称 需创建的镜像名称]
###反馈出一个hash值,相当于镜像id
[root@docker ~]# docker images
###查看镜像已经制作成功
然后再根据此镜像运行一个容器,保证两个容器的主页面内容是一样的。
docker run -it --name lvranbo1 lrb1:12-10
###进去会发现这个刚创建的容器插入同一镜像后配置都一样
[root@ccca9a0406e0 ~]# nginx ###启动服务
[root@ccca9a0406e0 ~]# curl 172.17.0.2
this is a testweb in container
将此镜像导出到docker02上,在docker02上根据此镜像运行一个容器,测试访问界面内容。
[root@docker ~]# docker save > cs.tar lrb1:12-10
###[格式: 导出>导出名 导出镜像名称]
[root@docker ~]# scp cs.tar 192.168.1.50:
###[格式: scp 源文件 目标ip地址:路径]
root@192.168.1.50's password:
cs.tar 100% 370MB 73.9MB/s 00:05
再第二台虚拟机上查询:
[root@docker2 ~]# ls
anaconda-ks.cfg cs.tar initial-setup-ks.cfg
[root@docker2 ~]# docker load < cs.tar ###将这个文件导入到docker中
77b174a6a187: Loading layer 211.2MB/211.2MB
2e35e64ed061: Loading layer 176.3MB/176.3MB
Loaded image: lrb1:12-10
[root@docker2 ~]# docker run -it --name asd lrb1:12-10 ###运行容器并指定镜像
[root@d9e306e6d6da /]# nginx ###启动服务
[root@ccca9a0406e0 ~]# curl 172.17.0.3
this is a testweb in container
测试成功!!!