介绍
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件 –wikipedia
本文就以 CentOS7 搭建 Samba 匿名完全访问(读/写)为目标,实现一个局域网内的文件共享平台。
1.安装Samba服务使用 yum 工具进行安装
1$ yum install samba samba-client
2.检查是否安装成功1$ rpm -qa | grep samba
3.防火墙开放端口在 /etc/sysconfig/iptables 中添加配置
123456-A INPUT -p tcp -m state --state NEW -m tcp --dport 137 -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 138 -j ACCEPT-A INPUT -p tcp -m state --state ...
遇见当我使用vim,想要粘贴下面这段脚本到 xx.sh 文件中
12345678910111213#!/bin/bashif [ $1 ]then if [ $1 == "help" ]; then echo -e "\033[37m pay 参数1 [参数2] \033[0m" else if [ $2 ]; then filename = $2 fi fielse echo -e "\033[37m 缺少关键词,通过'pay help'查看帮助信息 \033[0m"fi
却出现了错乱,如下图所示
分析vim 没有相应的程序来处理这个从其他应用复制粘贴的过程,所以Vim通过插入键盘输入的buffer来模拟这个粘贴的过程,这个时候Vim会以为这是用户输入的。
所以问题是:当上一行结束,光标进入下一行时Vim会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。
解决问题经过一番google,发现vim提供了 ...
通过attach进入容器
12## 进入容器(Docker自带的命令)$ sudo docker attach [name]
通过这命令进入容器后,执行ctrl+d退出容器后发现容器也停止了。所以可以通过
先按,ctrl+p
再按,ctrl+q
退出
制作进入容器的命令既然attach退出很麻烦,一不小心容器就down掉了
通过 docker exec 进入容器是安全的,但是命令过长
所以我们可以通过下面操作,简化命令
1.创建文件 /usr/bin/ctn,内容如下
1docker exec -it $1 /bin/bash
2.检查环境变量有没有配置目录 /usr/bin
12$PATHbash: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games: No such file or directory
配置环境变量的方式自行百度
3.完成上面两步即可通过命令 ctn 进入容器
1$ ctn [name]
注意:如果是使用非root账号创建的命令,而docker命令是root权限,可能会存在权限问题可以设置 ch ...
数据卷数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
数据卷可以在容器之间共享和重用
对数据卷的修改会立马生效
对数据卷的更新,不会影响镜像
数据卷默认会一直存在,即使容器被删除
注意:数据卷的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。
创建一个数据卷在用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器里。在一次 run 中多次使用可以挂载多个数据卷。
下面创建一个名为 web 的容器,并加载一个数据卷到容器的 /webapp 目录。
1$ sudo docker run -d -P --name web -v /webapp training/webapp python app.py
注意:也可以在 Dockerfile 中使用 VOLUME 来添加一个或者多个新的卷到由该镜像创建的任意容器。
删除数据卷数据卷是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据 ...
容器镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
命令1234567891011121314151617181920212223242526272829303132333435363738394041424344## 创建一个名为myubuntu的容器## -t:分配一个伪终端 -i:让容器的标准输入保持打开$ docker run --name=myubuntu -t -i ubuntu /bin/bash## 创建一个名为webserver 的nginx容器,使用卷映射本机/home/faker/myspace/ ...
Docker Hub目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了超过 15,000 的镜像。大部分需求,都可以通过在 Docker Hub 中直接下载镜像来实现。
登录可以通过执行 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。 注册成功后,本地用户目录的 .dockercfg 中将保存用户的认证信息。
基本操作用户无需登录即可通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。
例如以 centos 为关键词进行搜索:
12345678$ sudo docker search centosNAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos The official ...
sort是在Linux里非常常用的一个命令,管排序的。
1.工作原理sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
1234567891011121314151617$ cat seq.txtappleallowphotobowlpealcheckcheese$ sort seq.txtallowapplebowlcheckcheesepealphoto
2.sort的-u选项它的作用很简单,就是在输出行中去除重复行。
3.sort的-r选项sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。
4.sort的-o选项由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。
123[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt[rocrocket@rocrocket p ...
1.修改DNS解决方案一:修改网卡的DNS的配置文件
1$ vim /etc/resolv.conf
添加以下内容,设置两条dns
12nameserver 8.8.8.8 #google域名服务器nameserver 8.8.4.4 #google域名服务器
若未生效,可执行 chattr +i /etc/resolv.conf 设置文件属性只有root用户才能修改然后执行 service NetworkManager restart
解决方案二:对接口添加dns信息;编辑/etc/sysconfig/network-scripts/ifcfg-xxx,xxx为你的网卡名,但一般是ifcfg-eth0的,具体的xxx根据你的网卡确定,在最下面添加:
12DNS1=8.8.8.8 #google dns服务器, 根据实际情况更换DNS2=8.8.4.4 #google dns服务器, 根据实际情况更换
保存后重启网络
1$ service network restart
2.修改网关修改网关的配置文件(第3部分也可以设置)
...
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
构建镜像命令格式:
1$ docker build [选项] <上下文路径/URL/->
示例:
12## 构建一个名为 nginx:v3 的镜像$ docker build -t nginx:v3 .
RUN 执行命令
shell格式:RUN <命令>,就像直接在命令行中输入的命令一样。刚才写的 Dockrfile 中的 RUN 指令就是这种格式。
1RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec格式:RUN [“可执行文件”, “参数1”, “参数2”],这更像是函数调用中的格式。
COPY 复制文件格式:
COPY <源路径>... <目标路径>
COPY ["<源路径1>",... ...
WhatDocker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。
安装12345678## 官方 的安装脚本$ curl -sSL https://get.docker.com/ | sh## 阿里云 的安装脚本$ curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -## DaoCloud 的安装脚本$ curl -sSL https://get.daocloud.i ...
