运维,docker。为了项目对运维做的基础了解随笔笔记

 1。Linux 运维工程师的职责

运维,docker。为了项目对运维做的基础了解随笔笔记_第1张图片

 

2.开发工程师、测试工程师、运维工程师

运维,docker。为了项目对运维做的基础了解随笔笔记_第2张图片

 

开发需要将项目代码实现------》提交给测试工程师进行测试--------》测试完成后,提交给运维工程师进行上线,发布、运行、维护,给用户提供服务(数据服务)

 

3.Centeros、Ubuntu、Debian 三个都是Linux都是非常优秀的系统,开源分 付费的商业版和免费版。

Centos是从Redhat源代码编译重新发布版,centos去除了很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持

Ubuntu有着靓丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且对计算机硬件的支持优于centos和Debian,兼容性强,但对于服务器来说,并不需要太多的应用程序,需要的是稳定、操作方便、维护简单的系统。

 

4.Linux 常用的命令 shell命令行来实现的

进入终端先   pwd  确定自己所在目录

然后    ls / ls -al 查看当前目录下的文件

运维,docker。为了项目对运维做的基础了解随笔笔记_第3张图片

mkdir 创建目录  touch 只能创建文件

运维,docker。为了项目对运维做的基础了解随笔笔记_第4张图片

vi 进入文件

i 进入编辑状态  编辑文字

esc + :+ w

esc + : +q

保存退出

运维,docker。为了项目对运维做的基础了解随笔笔记_第5张图片

当再次创建相同名字文件 原文件将被替换

 

 

pwd 获取当前目录的绝对路径

cd(change direct)改变目录

运维,docker。为了项目对运维做的基础了解随笔笔记_第6张图片

d表示目录

vi 输入 i表示编辑  :w写入文件并保存 :q退出

可以连写 :wq写入保存并退出

:q!强制退出

cat filename 表示将filename文件内容打印到终端

 

cp file1 newfile1 拷贝file1 并新建newfile1文件

运维,docker。为了项目对运维做的基础了解随笔笔记_第7张图片

cp-r 目录1  目录2 拷贝目录1 并新建目录2

运维,docker。为了项目对运维做的基础了解随笔笔记_第8张图片

将tst 下的home移除 将work1下的work2复制到与tst平级的home中

 

 

-r表示递归复制目录的内容

运维,docker。为了项目对运维做的基础了解随笔笔记_第9张图片

rm -rf 递归删除一个文件夹    

 

移动文件:

运维,docker。为了项目对运维做的基础了解随笔笔记_第10张图片

tst下有work1      home下有work1,work2  

把work2转移到tst的work1下 mv -f work2 ../tst/work1/

 

 

压缩

创建一个 包含newfile.txt 和 readme.txt 的压缩文件file.tar

 

解压

 

部署到服务器上

运维,docker。为了项目对运维做的基础了解随笔笔记_第11张图片

首先在服务器的文件目录下创建一个文件夹

然后在bush上

运维,docker。为了项目对运维做的基础了解随笔笔记_第12张图片

上传到指定目录 (!! 保证路径的正确性)然后解压

运维,docker。为了项目对运维做的基础了解随笔笔记_第13张图片

 

history  命令可显示所有输入过的命令

一个字节 如 a 占1B 8bit(位) 00000000

运维,docker。为了项目对运维做的基础了解随笔笔记_第14张图片

进入centos  进入镜像 生成的容器 运维工程师在这里进行配置

 

5.Linux 系统的目录结构

/ 下边有:

bin :存放二进制文件                            boot:存放内核与启动文件

dev:存放抽象硬件                                etc:配置文件

home:普通用户目录                            lib:系统库文件

mnt:文件挂载目录  例如U盘                opt:用来存放大型软件的目录(非强制性)

usr:存放安装程序 默认的安装目录        var:存放变化比较多的文件

root:表示特权用户目录(管理员)       sbin:存放特权级二进制文件

 

Docker

 

运维,docker。为了项目对运维做的基础了解随笔笔记_第15张图片

一、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文件

运维,docker。为了项目对运维做的基础了解随笔笔记_第16张图片

    

 

一、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 架构图

 

三、项目结构图

 

 

 

时间仓促很是杂乱  待项目结束做详细的分享

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                

 

你可能感兴趣的:(基础,充电)