老男孩linux运维陈鑫杰讲网络
Dockerfile创建镜像 – Dockerfile示例安装nginx先下载nginx的配置文件到当前目录下 wget http://www.apelearn.com/study_v2/.nginx_conf vim Dockerfile //内容如下############################################################## Docke
Dockerfile创建镜像 – Dockerfile格式1. FROM //指定基于哪个基础镜像格式 FROM <p_w_picpath> 或者 FROM <p_w_picpath>:<tag>, 比如FROM centosFROM centos:latest2. MAINTAINER //指定作者信息格式 &
Docker 网络管理 - 四种网络模式* host模式 (容器的网络,寄居于宿主机。容器和宿主机网络一样。)使用docker run时使用--net=host指定docker使用的网络实际上和宿主机一样,在容器内看到的网卡ip是宿主机上的ip。相当于寄存于宿主机的网络。它有一定的局限性,如容器里开启了80端口,宿主机也开启了80端口,会产生冲突。例如:docker run -it
Docker 网络管理 – 配置桥接网络(centos7)为了使本地网络中的机器和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主机同一网段的需求。这个需求其实很容易实现,我们只要将Docker容器和宿主机的网卡桥接起来,再给Docker容器配上IP就可以了。* 安装pipwork #docker官方人员,shell写的一个脚本git clone https://
Docker 网络管理 – 容器互联 --link 用法下载一个mysql镜像docker pull mysql新建一个容器1,命名为dbdocker run -it -d -p 13306:3306 --name db mysql bash在新建一个web容器2,并和db互联docker run -it -d -p 12308:80 --name web --link
Docker 网络管理 - 外部访问容器1.首先使用centos镜像新建一个容器,然后在该容器中安装httpd服务,并启动2.再把该容器导成一个新的镜像(centos-httpd),然后再使用新镜像创建容器,并指定端口映射docker run -itd -p 5123:80 centos-httpd bash //-p 可以指定端口映射,本例中将容器的80端口映射为本地的5123端口3
Docker 数据管理容器的空间,只是使用宿主机硬盘的一部分,一般很小。在容器中产生的数据,除非导出成镜像,否则停止或者删除容器,原来产生的数据也随之丢失。可以把宿主机的一个目录,挂载到容器中,产生的数据都写入这个目录,这样避免了数据的丢失。1. 挂载本地的目录到容器里docker run -tid -v /data/:/data wyp bash //-v 用来指定挂载目录,:前面的/data/
Docker 仓库管理* docker pull registry //下载registry 镜像,registy为docker官方提供的一个仓库镜像,我们可以用它来创建本地的docker私有仓库。* docker run -d -p 5000:5000 registy //以registry镜像启动容器,监听5000端口,#端口映射5000,因为不在一个局域网,里外的
Docker 容器管理* docker create -it centos //这样可以创建一个容器,但该容器并没有启动* docker start container_id //启动容器后,可以使用 docker ps 查看到,有start 就有stop,和restart之前我们使用的docker run 相当于先cr
Docker 基于本地模板导入创建镜像* 模块获取,可以直接在网上下载一个模块 http://openvz.org/Download/templates/precreated 可惜速度并不快,若我们下载了一个centos的模板 centos-5-x86.tar.gz 那么导入该镜像的命令为:cat centos-5-x86.tar.gz |docker import - centos-
Docker 基于已有镜像的容器创建镜像* docker run centos /bin/bash首先使镜像开启容器。* docker start de8 启动指定的镜像容器。de8是镜像的ID,可以简写到3位。* 运行docker exec -it de8 /bin/bash后,进入到指定容器中,de8是ID,可以简写成3位。我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像。*
Docker 镜像管理 docker pull centos //从仓库docker.com获取centos镜像 docker p_w_picpaths //查看本地都有哪些镜像 docker tag centos aming123 //为centos镜像设置标签为aming123,再使用docker p_w_picpaths查看
Docker 安装安装前提,系统为Centos6.5以上版本,且是X86位。如果不能启动,yum update更新一下。centos6 上安装yum install -y epel-releaseyum install -y docker-iocentos7 上安装yum install -y docker启动docker/etc/init.d/docker start
Docker简介容器虚拟化,比传统的虚拟化轻量2013年出现,发展非常迅猛Redhat在6.5版本开始支持docker使用go语言开发,基于apache2.0协议开源软件,项目代码在github维护Docker的优势启动非常快,秒级实现资源利用率很高,一台机器可以跑上千个docker容器更快的交付和部署,一次创建和配置后,可以在任意地方运行内核级别的虚拟化,不需要额外的hypevisor支持,会有
Ansible 管理配置文件* 生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下。下面我们来写个管理nginx配置文件的playbook1.mkdir -p /etc/ansible/nginx_config/roles/{new,old}/{files,handlers,vars,tasks}说明:其中new为更新时用到的,old为回滚时用到的,file
* 定义main.yml并且把copy和install调用.任何目录,都必须有一个总入口配置文件main.ymlvim /etc/ansible/nginx_install/roles/install/tasks/main.yml #内容如下- include: copy.yml- include: install.yml到此两个roles:common和install就定义完成了,
Ansible 安装nginx* 思路:先在一台机器上编译安装好nginx、打包,然后再用ansible去下发1./usr/local/nginx/是已经编译安装好的nginx文件,配置好了启动脚本和配置文件。2.cd /usr/local #进入上一级目录3.tar czv
Ansible playbook中的handlers执行task之后,服务器发生变化之后要执行的一些操作,比如我们修改了配置文件后,需要重启一下服务vim /etc/ansible/handlers.yml---- name: handlers test hosts: client.wyp.com user: root tasks: -
Ansible playbook条件判断vim /etc/ansible/when.yml---- hosts: testhosts user: root gather_facts: True tasks: - name: use when shell: touch /tmp/when.txt&n
Ansible playbook中的循环vim /etc/ansible/loop.yml---- hosts: testhost user: root tasks: - name: change mode for files file: path=/tmp/` item ` mode=600 owner=r
Ansible playbook的使用,类似shell相当于把模块写入到配置文件里面,例:cd /etc/ansible/vim /etc/ansible/test.yml 配置文件以yml结尾--- #固
Ansible安装rpm包/管理服务* ansible testhost -m yum -a "name=httpd" 不支持name=vim*等通配符在name后面还可以加上state=installed* ansible testhost -m service -a "name=httpd state=started enabled=yes" 作用是,设置服务开机启动。相当于ch
Ansible实现任务计划*ansible testhost -m cron -a "name='test cron' job='/bin/touch /tmp/1212.txt' weekday=5-6"*若要删除该cron 只需要加一个字段 state=absentansible testhost -m cron -a "name='test cron' state=absent"*其他的时间
Ansible远程执行脚本* 首先创建一个shell脚本vim /tmp/test.sh //加入内容#!/bin/bashecho `date` > /tmp/ansible_test.txt* 然后把该脚本分发到各个机器上ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755"* 最后
Ansible 拷贝文件或目录* ansible client.wyp.com -m copy -a "src=/etc/ansible dest=/tmp/ansibletest owner=root group=root mode=0755"* 注意:源目录会放到目标目录下面去,如果目标指定的目录不存在,它会自动创建。如果拷贝的是文件,dest指定的名字和源如果不同,并且它不是已经
Ansible更改配置文件*vim /etc/ansible/hosts //增加*[testhost] 127.0.0.1 192.168.11.30或者client.wyp.com*说明: testhost为主机组名字,自定义的。 下面两个ip为组内的机器ip。Ansible 远程执行命令*ansible testhost -m command -a 'w'&n
Ansible特点*不需要安装客户端,通过sshd去通信*基于模块工作,模块可以由任何语言开发*不仅支持命令行使用模块,也支持编写yaml格式的playbook*支持sudo*有提供UI(浏览器图形化)www.ansible.com/tower 10台主机以内免费*开源UI https://github.com/alaxli/ansible_ui 文档 &nb
常用命令*cp.get_file 拷贝master上的文件到客户端如:salt 'client.wyp.com' cp.get_file salt://1.txt /tmp/wyp.txt说明:把1.txt拷贝到/tmp/下,并改名为wyp.txt*cp.get_dir 拷贝目录和目录下所有的文件到客户端如:salt '*' cp.get_dir salt://test/conf &n
配置管理任务计划vim /srv/salt/crontest.slscron_test: cron.present: #建立cron的函数 - name: /bin/touch /tmp/111.txt #计划执行的命令 - user: root - minute: '*' 
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号