1. 底子环境预备
(1)登录到实训体系,在#后输入service docker restart下令,然后按Enter键,重启docker服务。示例代码如下:
[root@xxx ~]# service docker restart
重启docker服务截图,如图1所示:
(2)修改docker设置文件,在#后输入vi /etc/sysconfig/docker下令,然后按Enter键,编辑docker设置文件。示例代码如下:
[root@xxx ~]# vi /etc/sysconfig/docker
将两行代码解释,如下所示(在下面两行代码前加个“#”号):
#ADD_REGISTRY='--add-registry 127.0.0.1:5000'
#INSECURE_REGISTRY='--insecure-registry 127.0.0.1:5000'
解释代码,如图2所示:
生存退出docker设置文件。
(3)在#后输入service docker restart下令,然后按Enter键,重启docker服务。示例代码如下:
[root@xxx ~]# service docker restart
重启docker服务截图,如图3所示:
以下步调中需注意,下载镜像前,请设置加速器,具体步调参考实行五。
(4)下载镜像,在#后输入docker pull nginx下令,然后按Enter键,下载nginx镜像。示例代码如下:
[root@xxx ~]# docker pull nginx
下载nginx镜像乐成截,如图4所示:
(5)下载镜像,在#后输入docker pull tomcat下令,然后按Enter键,下载tomcat镜像。示例代码如下:
[root@xxx ~]# docker pull tomcat
下载tomcat镜像乐成截图,如图5所示:
(6)查询镜像,在#后输入docker images下令,然后按Enter键,检察镜像列表。示例代码如下:
[root@xxx ~]# docker images
镜像列表截图,如图6所示:
- 创建发布目次
(1)创建www1、www2目次,并写一个默认接待页面,在#背面输入mkdir www1 www2下令,创建www1和www2目次,示例代码如下:
root@xxx ~]# mkdir www1 www2
(2) 在#后输入cd www1下令,然后按Enter键,进入www1目次,示例代码如下:
[root@xxx ~]# cd www1/
[root@xxx www1]#
(3)创建www1目次下的index.jsp文件,在#后输入vi index.jsp下令,然后按Enter键,创建index.jsp文件,示例代码如下:
[root@xxx www1]# vi index.jsp
index.jsp文件的内容,如下所示:
<html>
<head>
<title>Tomcat1title>
head>
<body>
<%
out.println("this is Tomcat1");
%>
body>
html>
(4) 创建www2目次下的index.jsp文件,在#后输入cd …下令,然后#后输入cd www2下令,接着#后输入vi index.jsp下令,创建index.jsp文件,示例代码如下:
[root@xxx www1]# cd …
[root@xxx ~]# cd www2/
[root@xxx www2]# vi index.jsp
index.jsp文件的内容,如下所示:
<html>
<head>
<title>Tomcat2title>
head>
<body>
<%
out.println("this is Tomcat2");
%>
body>
html>
在#后输入cd下令退回根目次。
3. 创建tomcat容器
(1)启动tomcat1容器,在#背面输入docker run -ti -d -P -h tomcat1 -v /root/www1:/usr/local/tomcat/webapps/ROOT tomcat:latest /bin/bash下令,创建容器,示例代码如下:
[root@xxx ~]# docker run -ti -d -P -h tomcat1 -v /root/www1:/usr/local/tomcat/webapps/ROOT tomcat:latest /bin/bash
启动容器乐成,如图7所示:
(2)进入tomcat1容器,启动服务,在#背面输入docker exec -it 41a42d053761 /bin/bash下令(41a42d053761为容器ID,可以通过docker ps -a查询到),然后输入cd bin,接着输入startup.sh,(启动服务必要等候一段时间,约5分钟)示例代码如下:
[root@xxx ~]# docker exec -it 41a42d053761 /bin/bash
root@tomcat1:/usr/local/tomcat# cd bin
root@tomcat1:/usr/local/tomcat/bin# startup.sh
效果代码如图8所示:
(3)退出tomcat1容器,在#背面输入exit下令,然后按Enter键,退出容器,示例代码如下:
root@tomcat1:/usr/local/tomcat/bin# exit
exit
[root@xxx ~]#
(4)启动tomcat2容器,在#背面输入docker run -ti -d -P -h tomcat2 -v /root/www2:/usr/local/tomcat/webapps/ROOT tomcat:latest /bin/bash下令,创建容器,示例代码如下:
[root@xxx ~]# docker run -ti -d -P -h tomcat2 -v /root/www2:/usr/local/tomcat/webapps/ROOT tomcat:latest /bin/bash
启动容器乐成,如图9所示:
(5)进入tomcat2容器,启动服务,在#背面输入docker exec -it 2f7386a4401c /bin/bash下令(2f7386a4401c为容器ID,可以通过docker ps -a查询到),然后输入cd bin,接着输入startup.sh,(启动服务必要等候一段时间,约5分钟)示例代码如下:
[root@xxx ~]# docker exec -it 2f7386a4401c /bin/bash
root@tomcat1:/usr/local/tomcat# cd bin
root@tomcat1:/usr/local/tomcat/bin# startup.sh
效果代码如图10所示:
(6)查询tomcat1效果,在#背面输入curl 10.24.2.45:32769下令(ip为宿主机ip,可以通过ip a查询到;端标语为容器的端标语,可以用docker ps -a查询到),然后按Enter键,示例代码如下:
[root@xxx ~]# curl 10.24.2.45:32769
Tomcat1
this is Tomcat1
curl效果代码如图11所示:
(7)查询tomcat2效果,在#背面输入curl 10.24.2.45:32770下令(ip为宿主机ip,可以通过ip a查询到;端标语为容器的端标语,可以用docker ps -a查询到),然后按Enter键,示例代码如下:
[root@xxx ~]# curl 10.24.2.45:32770
Tomcat2
this is Tomcat2
curl效果代码如图12所示:
4. 创建nginx容器,实现负载平衡
(1)创建nginx容器,在#背面输入docker run -itd -p 80:80 --name nginx nginx:latest /bin/bash下令(创建nginx容器的时间注意端口80是不是被占用,如果被占用可以选择使用其他端口。),然后按Enter键,示例代码如下:
[root@xxx ~]# docker run -itd -p 80:80 --name nginx nginx:latest /bin/bash 2abcd7ee80536e4c65366ed59d962603b7c5a7ecd88d0e69046bb07011d65b66
创建nginx如图13所示:
(2)编写nginx.conf文件,在#背面输入vi nginx.conf下令,然后按Enter键,示例代码如下:
[root@xxx ~]# vi nginx.conf
nginx.conf的内容,如下所示( 文件内容中的三处ip要修改成自己的当地ip和端口):
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
upstream wei {
server 10.24.2.45:32769;
server 10.24.2.45:32770;
}
server {
listen 80;
server_name 10.24.2.45;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://wei;
}
}
}
(3)将nginx.conf设置拷贝到nginx容器中,在#背面输入docker cp /root/nginx.conf 2abcd7ee8053:/etc/nginx/nginx.conf下令(id为nginx容器的id,可以用docker ps -a查询),然后按Enter键,示例代码如下:
[root@xxx ~]# docker cp /root/nginx.conf 2abcd7ee8053:/etc/nginx/nginx.conf
(4)进入容器,启动nginx服务,在#背面输入docker exec -it 2abcd7ee8053 /bin/bash下令(id为nginx容器的id,可以用docker ps -a查询),然后按Enter键;接着在#背面输入/usr/sbin/nginx,按Enter键,示例代码如下:
[root@xxx ~]# docker exec -it 2abcd7ee8053 /bin/bash
root@2abcd7ee8053:# /usr/sbin/nginx
(5)退出nginx容器,在#背面输入exit下令,然后按Enter键,退出容器,示例代码如下(若退出时间较长,可以革新欣赏器页面):
root@2abcd7ee8053:# exit
exit
[root@xxx ~]#
(6)检察实现效果,在#背面输入for i in ``seq 1 4 ` ;do curl 10.24.2.45;done(ip为本机ip,可以用ip a下令查询)下令,然后按Enter键,检察效果,示例代码如下:
[root@xxx ~]# for i in `seq 1 4`;do curl 10.24.2.45;done
实现效果如图14所示:
通过访问的效果可以看出,我们访问nginx署理站点,可以大概访问Tomcat1和Tomcat2的服务,实现的负载平衡的效果。 ! |