docker笔记

本文详细介绍如何使用Docker封装基础镜像、实现负载均衡,并通过Docker Swarm进行容器高可用部署。从基本命令到复杂场景应用,包括Apache、Nginx、HAProxy的服务配置及Swarm集群管理。

封装基础镜像
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

### 回答1: 要下载Docker笔记,首先需要了解Docker是什么以及其使用场景。 Docker是一种开源的容器化平台,可以帮助用户打包、部署和运行应用程序。通过使用容器化技术,用户无需担心运行环境的差异,可以将应用程序和其依赖项打包到一个可移植的容器中,随时在不同的环境中运行。 要下载Docker笔记,可以按照以下几个步骤进行操作: 1. 首先,需要在计算机上安装Docker。可以从Docker官方网站(https://www.docker.com/)上下载适合自己操作系统的Docker安装包,并按照安装指南进行安装。 2. 安装完成后,需要启动Docker服务。根据操作系统的不同,可以在启动菜单或终端中找到Docker应用程序,并点击打开。在Docker控制台中,可以查看、管理容器以及进行其他操作。 3. 接下来,需要搜索并下载Docker笔记的镜像。可以使用Docker Hub(https://hub.docker.com/)这个官方的镜像仓库,搜索关键词以找到合适的笔记镜像。在搜索结果中,会显示镜像的名称、描述、标签等信息,选择一个合适的镜像。 4. 找到想要下载的笔记镜像后,可以使用Docker命令行工具或Docker控制台中的图形界面来下载镜像。通过输入命令`docker pull 镜像名称:标签`,即可下载对应的笔记镜像到本地。 5. 下载完成后,可以使用`docker images`命令在本地查看已下载的镜像列表。根据下载的笔记镜像的名称和标签,可以使用`docker run`命令来创建并启动一个容器,从而运行笔记。 通过以上步骤,就可以成功下载Docker笔记并在本地运行。希望这些信息对您有帮助! ### 回答2: 要下载Docker笔记,首先需要知道从哪里获取这些笔记Docker有一个官方文档网站,其中包含了大量关于Docker的技术文档、教程和示例以及各种使用场景的说明。用户可以访问Docker官方网站,在文档部分进行浏览和搜索,找到所需的笔记。 在Docker官方文档网站上,用户可以按照主题、标签或关键字进行检索,以找到相关的笔记。网站还提供了各种文件格式的下载选项,包括PDF、EPUB和HTML版本,用户可以根据自己的使用习惯选择适合的格式进行下载。 此外,还有一些第三方资源库和网站提供了Docker相关的笔记下载。例如GitHub上有很多开源项目,其中包含了Docker的使用笔记和示例代码。用户可以通过在GitHub上搜索关键字"Docker笔记"或"Docker notes"来找到相关的项目,然后根据项目的说明进行下载。 总之,下载Docker笔记可以通过Docker官方文档网站或第三方资源库进行。用户可以根据自己的需求和偏好选择下载适合自己的格式和来源。 ### 回答3: 要下载 Docker 笔记,首先需要确保已经安装了 Docker 客户端工具。然后按照以下步骤进行下载: 1. 打开终端或命令提示符,输入以下命令来下载 Docker 笔记Docker 镜像: ``` docker pull [镜像名称] ``` 这里的 `[镜像名称]` 是 Docker Hub 上提供的 Docker 镜像名称,可以根据需要搜索并选择合适的镜像。 2. 等待镜像下载完成后,使用以下命令来创建和运行一个 Docker 容器,并将笔记下载到本地: ``` docker run -it --name [容器名称] [镜像名称] [下载命令] ``` 这里的 `[容器名称]` 是用于标识容器的名称,`[下载命令]` 是具体的下载命令,可以根据下载方式的不同进行相应的设置。 3. 等待下载完成后,可以使用以下命令来停止并删除容器: ``` docker stop [容器名称] docker rm [容器名称] ``` 这里的 `[容器名称]` 是之前创建容器时指定的名称。 通过以上步骤,你就可以成功下载 Docker 笔记到本地了。记得根据实际需求选择适合的 Docker 镜像和下载命令,同时也可以通过 Docker Hub 上的文档和社区提供的资源,了解更多有关 Docker 的使用方法和技巧。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值