分类目录归档:LINUX

Docker学习(2)—Dockerfile和自制镜像

一、什么是Dockerfile
Dockerfile就是名为Dockerfile的文件(注意没有后缀名),文件中包含一些Linux命令,Docker通过读取文件中的命令来组件镜像

二、Dockerfile文件内容结构
Dockerfile一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,“#”为dockerfile中的注释

三、运行Dockerfile
当前目录下
docker build -t image_name:tag_name .
也可以通过-f参数来指定Dockerfile文件位置
docker build -f /path/Dockerfile .
说明:
-t:tag,指定镜像名字和标签
-f:指定文件路径

四、命令详解
1、FORM:指定基础镜像,必须为第一个命令
格式:
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>

示例:
FROM centos:7.0

2、MAINTAINER:维护者信息
格式:
MAINTAINER <name>
示例:
MAINTAINER zhangsan

3、RUN:构建镜像时执行的命令
格式:
RUN <commond>
RUN ["executable", "param1", "param2"]

示例:
RUN yum install nginx
RUN ["/bin/executable", "param1", "param2"]

继续阅读Docker学习(2)—Dockerfile和自制镜像

CentOS7升级php到7.2

由于新版wordpress不支持默认源的php5.4,所以必须升级。。。

1、删除旧版本php
yum list installed | grep php
yum remove php
yum remove php-*

2、安装第三方更新源
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3、安装php7.2
yum install php72w mod_php72w php72w-bcmath php72w-cli php72w-common php72w-devel php72w-gd php72w-mbstring php72w-mysqlnd php72w-pdo php72w-pear php72w-process php72w-xml php72w-xmlrpc
如果是apache服务器还要安装mod_php72w

4、查看版本
php -v

Docker学习(1)—基础命令

一、沙箱机制
独立性、隔离性
在里面运行病毒也没有关系

二、Docker是什么
Docker是一个开源的应用容器引擎,基于Go语言
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的“容器”中,然后发布到任何流行的Linux机器上,
“容器”完全使用“沙箱机制”,相互之间不会有任何接口(类似iPhone的app)

三、Docker优势
启动快
占用资源少

四、镜像/容器/仓库
1、镜像:通过镜像创建容器
类似于装系统的光盘
2、容器:镜像创建容器,容器启动起来之后,就能提供包含软件的服务了
3、仓库:镜像的集中存放地
类似于github、码云
4、容器的资源使用
容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。
所有容器是共享宿主机的cpu、磁盘、内存。

五、镜像的操作
1、从仓库获取镜像
搜索镜像:docker search image_name
搜索结果过滤:
是否官方:docker search --filter "is-official=true" image_name
是否自动化构建:docker search --filter "is-automated=true" image_name
大于多少颗星星:docker search --filter stars=100 image_name
下载镜像:docker pull image_name
镜像被默认保存到 /var/lib/docker 目录下
2、本地镜像的查看:docker images
3、本地镜像的删除:docker rmi image_name/image_id

六、容器的操作
1、创建容器:docker run -itd --name=container_name image_name
注:同一个镜像可以创建多个容器,只要容器的名字不一样就可以
参数说明
-i:表示以交互模式运行
-d:表示后台运行容器,并返回容器ID
-t:为容器重新分配一个伪输入终端
–name:为容器指定名称(注意是杠杠)
2、查看容器(运行中):docker ps
3、查看容器(包括已停止的):docker ps -a
4、停止容器:docker stop container_name/container_id
5、启动容器:docker start container_name/container_id
6、重启容器:docker restart container_name/container_id
7、删除容器:docker rm container_name/container_id

继续阅读Docker学习(1)—基础命令

Linux chattr/lsattr命令

1、chattr命令用于设置文件或文件夹的隐藏属性
一般格式:chattr [-RVf] [-+=aAcCdDeijsStTu] files…
说明:
i:不允许对文件进行删除、改名,也不能添加和修改数据
a:只能在文件中増加数据,但是不能删除和修改数据
u:在删除时,其内容会被保存,以保证后期能够恢复

2、例子
1)增加属性
chattr +iua cron/
2)解除属性
chattr -iua cron/

3、lsattr用来查看隐藏属性
lsattr
-u–ia——-e– ./cron

参考资料:
https://www.cnblogs.com/ftl1012/p/chattr.html

CentOS7安装Docker

系统为CentOS7,内核版本要求3.10以上
 1、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
 sudo yum install yum-utils device-mapper-persistent-data lvm2
 2、设置yum源
 --国内使用阿里云的源
 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 --国外使用官方的源
 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 3、可以查看所有仓库中所有docker版本,并选择特定版本安装
 yum list docker-ce --showduplicates | sort -r
 4、安装docker(默认安装稳定版)
 sudo yum install docker-ce
 5、启动并加入开机启动
 systemctl enable docker
 systemctl start docker
 6、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
 docker version

CentOS7编译rocketmq-client-cpp

一、安装依赖包
yum update
yum install git
yum install make gcc gcc-c++ automake libtool cmake bzip2 bzip2-devel zlib zlib-devel

二、编译rocketmq-client-cpp客户端
cd /opt
mkdir rocketmq-client
git clone https://github.com/apache/rocketmq-client-cpp.git
cd rocketmq-client-cpp
sh build.sh

Linux curl命令

一、GET请求
curl https://www.baidu.com/s?wd=Content-Type
curl www.baidu.com/s?wd=Content-Type

加http和不加http效果一样

二、POST请求
curl http://192.168.1.179:8501/posp/6c7c96072f0d4dd7a0d6d236ee50ac4c/orderQuery -X POST -H “Content-Type:application/json;charset:utf-8;” -d “1111111111”

参数说明:
-X:指定请求的方法
-H:指定请求头(如果有多个请求头就加多个-H)
-d:指定请求的数据
-i:显示http响应的头信息
-g:关闭url通配符功能,使用特殊符号{}和[]
-v:显示数据传输过程中的详细信息

Linux pmap命令

pmap命令用于查看进程的内存映像信息,查看进程加载了哪些模块。


Usage:
 pmap [options] PID [PID ...]

Options:
 -x, --extended              show details
 -X                          show even more details
            WARNING: format changes according to /proc/PID/smaps
 -XX                         show everything the kernel provides
 -c, --read-rc               read the default rc
 -C, --read-rc-from=   read the rc from file
 -n, --create-rc             create new default rc
 -N, --create-rc-to=   create new rc to file
            NOTE: pid arguments are not allowed with -n, -N
 -d, --device                show the device format
 -q, --quiet                 do not display header and footer
 -p, --show-path             show path in the mapping
 -A, --range=[,]  limit results to the given range

 -h, --help     display this help and exit
 -V, --version  output version information and exit



字段说明:
Address : start address ofmap 映像起始地址
Kbytes : size of map in kilobytes 映像大小
RSS : resident set size inkilobytes 驻留集大小
Dirty : dirty pages (both sharedand private) in kilobytes 脏页大小
Mode : permissions on map 映像权限: r=read,w=write, x=execute, s=shared, p=private (copy on write)
Mapping : file backing the map ,or ‘[ anon ]’ for allocated memory, or ‘[ stack ]’ for the program stack. 映像支持文件,[anon]为已分配内存[stack]为程序堆栈

CentOS7 yum 安装LAMP

最近把vps系统重新安装了一下,更换了系统模版为CentOS7。命令和CentOS6有所不同。

1、更新系统

yum makecache fast
yum update

2、安装apache

yum install httpd

3、安装数据库mariadb

yum install mariadb mariadb-server mariadb-devel

4、安装php和常用库

php php-devel php-common php-cli php-mbstring php-gd php-bcmath php-pdo php-pear php-xml php-xmlrpc php-mysqlnd

5、启动httpd、mysqld

systemctl start httpd.service
systemctl start mariadb.service

6、设置开机自启动服务

systemctl enable httpd.service
systemctl enable mariadb.service

7、配置apache

vim /etc/httpd/conf/httpd.conf

1)添加php支持
找到:

DirectoryIndex index.html

改为:

DirectoryIndex index.html index.php

找到:

AddType application/x-gzip .gz .tgz

在其下面加上以下内容:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

2)添加伪静态

<Directory "/home/live-in.org">
    AllowOverride All
    # Allow open access:
    Require all granted
</Directory>


3)在文件末尾添加虚拟主机配置

<VirtualHost *:80>
DocumentRoot "/home/live-in.org"
ServerName www.live-in.org
ErrorLog logs/live-in.org-error_log
CustomLog logs/live-in.org-access_log common
DeflateCompressionLevel 5
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/x-javascript
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName xxx.xxx.xxx.xxx
</VirtualHost>


PS:xxx.xxx.xxx.xxx填服务器IP

4)调整prefork进程数

<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       2
    MaxSpareServers       3
    MaxClients            4
    MaxRequestsPerChild  500
</IfModule>