實驗架構html
docker前期配置,設置repolinux
yum install -y yum-utils \nginx
device-mapper-persistent-data \web
lvm2docker
yum-config-manager \vim
--add-repo \centos
https://download.docker.com/linux/centos/docker-ce.repotomcat
安裝dockerbash
yum install -y docker-ce網絡
yum list docker-ce --showduplicates | sort -r
自動啓動
systemctl start docker
systemctl enable docker
docker安裝驗證
docker run hello-world
下3個鏡像,都用官網的好了
docker search nginx
docker pull nginx
docker search tomcat
docker pull tomcat
docker search centos
docker pull centos
同步下時間,每隔12小時自動同步一次
yum install -y ntpdate
ntpdate 0.asia.pool.ntp.org
crontab -e
* * */12 * * ntpdate 0.asia.pool.ntp.org
crontab -l
看看本地鏡像
docker images
更新下網絡配置避免包轉發出錯
echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
systemctl restart network
關閉selinux
setenforce 0
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux
docker run -d -p 8080:80 --name nginxdemo nginx #以nginx鏡像啓動容器
#參數說明 -d 之後臺進程運行 -p 本地端口:容器端口 (端口映射) --name 容器名稱
docker ps #顯示當前運行的容器
宿主機器192.168.10.131 端口8080轉發到docker中80中,看起來docker 和nginx鏡像都沒問題
清除剛剛的demo
docker stop nginxdemo
docker rm nginxdemo
docker ps
正式作nginx,tag本身的版本而後啓動下
docker tag be1f31be9a87 nginx:v1
docker images
docker run -ti -d -p 80:80 nginx:v1 /bin/bash
docker ps
這nginx鏡像裏面沒有vim,改不了配置,我先更新下,下一個vim,5k/s好速度,我先安裝tomcat了
docker exec -ti 14efbc894d74 /bin/bash
/usr/sbin/nginx
apt-get update
apt-get install vim
運行下tomcat
docker run -ti -d -h tomcat1 -v /usr/www1:/usr/local/tomcat/webapps/www -p 8081:8080 tomcat
docker run -ti -d -h tomcat2 -v /usr/www2:/usr/local/tomcat/webapps/www -p 8082:8080 tomcat
8081 8082 都轉發到了8080的tomcat上
宿主機器建立2個目錄和文件
mkdir -pv /usr/www2 /usr/www1
echo "Tomcat 1 html file on /usr/www1">/usr/www1/index.html
echo "Tomcat 2 html file on /usr/www2">/usr/www2/index.html
從新運行下tomcat容器
docker run -ti -d -P -h tomcat99 -v /usr/www1:/usr/local/tomcat/webapps/ROOT tomcat /bin/bash
docker run -ti -d -P -h tomcat88 -v /usr/www2:/usr/local/tomcat/webapps/ROOT tomcat /bin/bash
docker exec -ti 5c10be46c807 /bin/bash
bin/startup.sh
docker exec -ti 54d5f9f370c2 /bin/bash
bin/startup.sh
32768 32769端口都映射到了宿主機器的目錄,由於了-P,因此是隨機端口
繼續nginx那個鏡像,運行下更新下nginx
docker tag be1f31be9a87 nginx:v0
docker images
docker run -ti -d -p 80:80 nginx:v0 /bin/bash
docker exec -ti a62119e032b3 /bin/bash
/usr/sbin/nginx
apt-get update
apt-get install vim
更新下nginx配置
vim /etc/nginx/nginx.conf
upstream 127.0.0.1 {
server 192.168.10.131:32768;
server 192.168.10.131:32769;
}
vim /etc/nginx/conf.d/default.conf
從新更新下nginx配置,而後重啓nginx
nginx -t
nginx -s reload
service nginx restart
客戶端驗證
多刷幾回,nginx 的80端口負載冗餘到後臺的2臺tomcat 上,而後tomcat 的-v虛擬目錄映射了宿主機器的www目錄中的2個地址
日誌http200
從宿主機器curl下,2個後臺都hit到了
for i in `seq 1 10`; do curl 192.168.10.131;done