封装基础镜像
docker run –name v1 -it rhel7 bash
cd /etc/yum.repos.d/
vim yum .repo
[yum]
name=rhel7.3
baseurl=http://172.25.10.250/rhel7.3
gpgcheck=0
rm -fr redhat.repo
ctrl p + q
rpmdb –rebuilddb
docker rm docker ps -aq
docker run -it –name vm1 ubuntu bash
ip addr del 172.17.0.2/16 dev eth0 ##拒绝
docker stop vm1
docker rm vm1
docker run -it –privileged=true –name vm1 ubuntu bash
ip addr del 172.17.0.2/16 dev eth0 ##ok
docker stop vm1
docker rm vm1
docker run -it –cap-add=NET_ADMIN –name vm1 ubuntu
bash
[root@foundation0 ~]# docker inspect -f {{.HostConfig.Privileged}} vm1
false
[root@foundation0 ~]# docker inspect -f {{.HostConfig.CapAdd}} vm1
#
compose负载均衡
#
[root@docker ~]# mv docker-compose-Linux-x86_64-1.16.1 /usr/local/sbin/
[root@docker ~]# cd /usr/local/sbin/
[root@docker sbin]# ln -s docker-compose-Linux-x86_64-1.16.1 docker-compose
[root@docker sbin]# chmod +x docker-compose
[root@docker ~]# mkdir compose
[root@docker ~]# cd compose/
[root@docker compose]# vim docker-compose.yml
apache:
build: ./web
expose:
- 80
nginx:
image: nginx
expose:
- 80
haproxy:
image: haproxy
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
links:
- apache
- nginx
ports:
- “80:80”
expose:
- “80”
~
~
[root@docker compose]# mkdir web
[root@docker compose]# cd web
[root@docker web]# pwd
/root/compose/web
[root@docker web]# vim Dockerfile
FROM rhel7:v1
MAINTAINER 1904168391@qq.com
ENV HOSTNAME apache
EXPOSE 80
RUN yum -y install httpd
COPY index.html /var/www/html/index.html
CMD [“/usr/sbin/httpd”,”-D”,”FOREGROUND”]
[root@docker web]# echo “hello,world” >index.html
[root@docker web]# ls
Dockerfile index.html
[root@docker web]# pwd
/root/compose/web
[root@docker web]# cd ..
[root@docker compose]# pwd
/root/compose
[root@docker compose]# mkdir haproxy
[root@docker compose]# cd haproxy/
[root@docker haproxy]# vim haproxy.cfg
global
log 127.0.0.1 local0
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats uri /status
frontend balancer
bind 0.0.0.0:80
default_backend web_backends
backend web_backends
balance roundrobin
server web1 apache:80 check
server web2 nginx:80 check
[root@docker haproxy]# cd ..
[root@docker compose]# ls
docker-compose.yml haproxy web
[root@docker compose]# docker-compose up
[root@docker compose]# docker-compose start
docker swarn
准备两台7.3docker 开启,时间同步 docker3,docker4
load nginx镜像
#
swarm docker 容器高可用
#
[root@docker compose]# docker swarm init
[root@docker3 ~]# docker swarm join –token SWMTKN-1-18rdmlwd9lka6s0az8wb5qa3lgq28umk4e7a0pf9jsm7s2exgh-3zmxi77ywpp4zi5vrmibgeoev 172.25.10.1:2377
[root@docker4 ~]# docker swarm join –token SWMTKN-1-18rdmlwd9lka6s0az8wb5qa3lgq28umk4e7a0pf9jsm7s2exgh-3zmxi77ywpp4zi5vrmibgeoev 172.25.10.1:2377
[root@docker compose]# docker service create –name web –publish 80:80 –replicas 4 nginx
[root@docker ~]# docker service ps web
[root@docker ~]# docker service scale web=num
浏览器:172.25.10.1
[root@docker ~]# docker load -i visualizer.tar
[root@docker ~]# docker service create –name=viz –publish=8080:8080/tcp –constraint=node.role==manager –mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer
[root@docker ~]# docker service scale web=30
浏览器:172.25.10.1:8080
更新httpd
封装一个apache
vim Dockerfile
FROM rhel7:v1
MAINTAINER 1904168391@qq.com
ENV HOSTNAME apache
EXPOSE 80
RUN yum -y install httpd
CMD [“/usr/sbin/httpd”,”-D”,”FOREGROUND”]
docker build -t rhel7:v2 .
docker save rhel7:v2 >rhel7.tar
scp rhel7.tar root@172.25.10.3:~
scp rhel7.tar root@172.25.10.4:~
docker service update –update-parallelism 2 –update-delay 2s –update-failure-action rollback –image rhel7:v2 web
l
[root@docker ~]# docker load -i flask.tar
[root@docker ~]# vim test.py
from flask import Flask
import os
app = Flask(__name__)
@app.route("/")
def env():
return os.environ["HOSTNAME"]
app.run(host="0.0.0.0")
[root@docker ~]# docker run -d –name test -v /root/test.py:/test.py python:flask python /test.py
[root@docker ~]# curl 172.17.0.2:5000
9fe8a921b493
[root@docker ~]# docker stop test
test
[root@docker ~]# docker rm test
test
[root@docker ~]# docker run -it –name test python:flask
Python 2.7.11 (default, Mar 24 2016, 09:47:20)
[GCC 4.9.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
ctrl q p
[root@docker ~]# docker container cp test.py test:/
[root@docker ~]# docker container exec test ls /
test.py
[root@docker ~]# docker container commit test python:demo
[root@docker ~]# docker images
[root@docker ~]# docker save python:demo > demo.tar 保存
[root@docker ~]# scp demo.tar root@172.25.10.3:~
[root@docker ~]# scp demo.tar root@172.25.10.4:~
[root@docker3 ~]# docker load -i demo.tar
[root@docker4 ~]# docker load -i demo.tar
[root@docker ~]# docker service create –replicas 3 –publish 80:5000 python:demo python /test.py
[kiosk@foundation10 Desktop]$ for i in {1..20}; do curl -w “\n” 172.25.10.1; done
e06209491de1
06ba47135b5e
c52d01f68b20
e06209491de1
06ba47135b5e
c52d01f68b20
e06209491de1
06ba47135b5e
c52d01f68b20
e06209491de1
06ba47135b5e
c52d01f68b20
e06209491de1
06ba47135b5e
c52d01f68b20
e06209491de1
06ba47135b5e
c52d01f68b20
e06209491de1
06ba47135b5e
[root@docker ~]# docker service scale affectionate_swirles=10 ##忘了命名了
[root@docker ~]# docker service rm affectionate_swirles
[root@docker ~]# docker service create –name web -p 80:80 –replicas 3 nginx
[kiosk@foundation10 Desktop]$ curl 172.25.10.1
nginx默认页
[root@docker ~]# docker service update –mount-add type=bind,source=/root/web,target=/usr/share/nginx/html web
www
在docker,家目录下新建web
web 里边index.html –hello
docker3家目录下新建web
web 里边index.html –hello hello
docker4家目录下新建web
web 里边index.html –hello hello hello