1。Linux 运维工程师的职责
2.开发工程师、测试工程师、运维工程师
开发需要将项目代码实现------》提交给测试工程师进行测试--------》测试完成后,提交给运维工程师进行上线,发布、运行、维护,给用户提供服务(数据服务)
3.Centeros、Ubuntu、Debian 三个都是Linux都是非常优秀的系统,开源分 付费的商业版和免费版。
Centos是从Redhat源代码编译重新发布版,centos去除了很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持
Ubuntu有着靓丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且对计算机硬件的支持优于centos和Debian,兼容性强,但对于服务器来说,并不需要太多的应用程序,需要的是稳定、操作方便、维护简单的系统。
4.Linux 常用的命令 shell命令行来实现的
进入终端先 pwd 确定自己所在目录
然后 ls / ls -al 查看当前目录下的文件
mkdir 创建目录 touch 只能创建文件
vi 进入文件
i 进入编辑状态 编辑文字
esc + :+ w
esc + : +q
保存退出
当再次创建相同名字文件 原文件将被替换
pwd 获取当前目录的绝对路径
cd(change direct)改变目录
d表示目录
vi 输入 i表示编辑 :w写入文件并保存 :q退出
可以连写 :wq写入保存并退出
:q!强制退出
cat filename 表示将filename文件内容打印到终端
cp file1 newfile1 拷贝file1 并新建newfile1文件
cp-r 目录1 目录2 拷贝目录1 并新建目录2
将tst 下的home移除 将work1下的work2复制到与tst平级的home中
-r表示递归复制目录的内容
rm -rf 递归删除一个文件夹
移动文件:
tst下有work1 home下有work1,work2
把work2转移到tst的work1下 mv -f work2 ../tst/work1/
压缩
创建一个 包含newfile.txt 和 readme.txt 的压缩文件file.tar
解压
部署到服务器上
首先在服务器的文件目录下创建一个文件夹
然后在bush上
上传到指定目录 (!! 保证路径的正确性)然后解压
history 命令可显示所有输入过的命令
一个字节 如 a 占1B 8bit(位) 00000000
进入centos 进入镜像 生成的容器 运维工程师在这里进行配置
5.Linux 系统的目录结构
/ 下边有:
bin :存放二进制文件 boot:存放内核与启动文件
dev:存放抽象硬件 etc:配置文件
home:普通用户目录 lib:系统库文件
mnt:文件挂载目录 例如U盘 opt:用来存放大型软件的目录(非强制性)
usr:存放安装程序 默认的安装目录 var:存放变化比较多的文件
root:表示特权用户目录(管理员) sbin:存放特权级二进制文件
Docker
一、Docker 虚拟机架构
Docker 创建的所有虚拟实例共用同一个Linux内核,对硬件占用较小,属于轻量级的虚拟机。
SaaS PaaS 云计算 使用也是Docker 虚拟机系统
二、Docker 镜像与容器
容器是从镜像中创建出来的虚拟实例
镜像是用来安装程序,是只读层
容器是用来运行程序的,是读写层
仓库、镜像、容器
仓库就是超级码头
镜像就是集装箱
容器就是运行程序的地方
运行程序的过程:
去仓库找到镜像拉到本地,用命令把镜像运行起来
Docker 镜像 image
image 也是文件,也是运行程序的文件,也可以是运行环境的文件,文件首先会保存到本地,存储文件的格式是Linux中称之为联合存储文件系统Ulinix FS,它是一种分层的文件系统,可以将不同的文件目录挂载到一个虚拟文件下
Docker 容器 Container
Docker仓库ship
hub.docker.com#docker官方仓库
c.163yun.com#网易蜂巢
daoclould.io#
三、安装Docker容器
四、Docker虚拟机管理命令
Dockerfile
bulid 创建镜像
rmi 删除镜像
镜像和仓库之间的命令
search 查找镜像
push 上传镜像
pull 下拉镜像
save 保存镜像 .gz
load导入镜像
镜像和容器之间的命令
run 运行容器
exec 进入容器
ps 查看运行中的容器
commit提交
rm 删除容器
stop 停止正在运行的容器
restart重新启动指定容器
查看端口状态
netstat -na|grep8080 ‘|’(管道)
五、创建自定义镜像流程
1、创建一个自定义文件
2、在文件下创建规定的Dockerfile 文件
FROM daocloud.io/library/python:3.6.2rc1-alpine
MAINTAINER dj [email protected]
//有效的邮箱格式
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python","app.py"]
创建app.py 文件
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home_page():
return u'Home page'
if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0')
创建固定格式的.txt文件
一、Dockerfile
镜像的定制实际上就是定制每一层所添加的配置和文件。
如果可以把每一层修改、安装、构建、操作的命令都写入到一个脚本,用这个脚本文件构建、定制镜像,并且重复利用、镜像的构建透明化、体积的优化。那么这个脚本称之为Dockerfile
二、为什么要使用Dockerfile
目前的仓库镜像很难找到一个满足项目需求、非常好用的镜像,就需要自定义镜像
三、Dockerfile语法
基本指令有13个,指令必须大写,分别是
FROM
MAINTAINER
RUN
CMD
EXPOSE
ENV
ADD
COPY
ENTERPOINT
VOLUME
USER
WORKDIR
ONBUILD
3.1FROM
用法:FROM
说明:Dockerfile第一个指令必须是FROM
其指定一个构建镜像的基础源镜像,如果本地Docker镜像没有则会从公共库中拉取pull,没有指定镜像的Tag则会使用默认的latest标签tag,可以出现很多次,如果想在同一个Dockerfile中构建多个镜像
3.2MAINTAINER
用法:MAINTAINER
说明:描述镜像的创建者的名称和邮箱
3.3RUN
用法:RUN “command”"param1" "param2" "....."
说明:RUN命令是执行之后会生成一个新的镜像,也可以是镜像的分层构建。一句RUN就是一个分层,也相当于一个版本。RUN后面的都需要使用双引号不能是单引号。
3.4CMD
用法:CMD["command","param1","param2","..."]
说明:CMD命令在Dockerfile中只能出现一次,如果有多次,则只有最后一次生效
3.5EXPOSE
用法:EXPOSE port1 port2...
说明:设置容器对外映射的容器端口号,在docker run -p的时候生效
3.6 ENV
3.7 ADD
用法:ADD
说明:复制宿主机本地文件或者目录或者远程文件,添加到指定的容器目录,支持正则。路径是绝对路径,不存在自动创建。如果源是一个目录,只会复制目录下的内容,目录本身不会复制。ADD命令会将复制的压缩文件夹自动解压
3.8COPY
用法:COPY
src表示源 宿主机上的源,源代表着文件或者文件目录
dest 表示容器中的指定目录
说明:COPY除了不能自动解压,也不能复制网络文件,其他功能和ADD相同。
3.9ENTRYPOINT
用法:ENTRYPOINT“command”“param1”“param2”“.......”
说明:和CMD一样、唯一的区别就是不能被docker run命令执行命令覆盖,如果想覆盖则需要带上 --entrypoint,如果是多项则最后一个有效
3.10 VOLUME
用法:VOLUME["path"]
说明:在宿主机上创建一个挂载,挂载到容器的指定路径,docker run -v 命令也能实现挂载,而且更强大。这个命令不能指定宿主机的需要挂载到容器的文件目录的路径,但是docker -v可以,而且docker -v也可以挂载数据容器
3.11 USER
3.12 WORKDIR
用法:WORKDIR path
说明:为RUN、COPY、ENTRYPOINT指定配置工作目录。可以使用多个WORKDIR后续参数如果是相对路径,则会基于之前的命令指定的路径。比如:WORKDIR/HOME WORKDIR test 最终的路径为 /Home/test
如果设置对了环境变量 例如当前的环境变量 HOME=/home 则WORKDIR $HOME/test 也是 /homne/test
3.13 ONBUILD
实战:Docker+Nginx+Flask+MySQL
Docker:18.0
daocloud.io/library/registry:0.7.1
Nginx:daocloud.io/library/nginx:1.11.1-alpine
Python:daocloud.io/library/python:3.6.2rc1-alpine
Server :Centos 7
daocloud.io/library/centos:centos5.11
一、数据访问流程图
二、Docker 架构图
三、项目结构图