基于centos创建lnmp环境自定义镜像
一:步骤
1.拉取最新centos镜像
docker pull centos
2.执行并进入容器
docker runt -it centos /bin/bash
3.更新依赖
yum -y update
yum -y install net-tools
#安装依赖
yum -y install libxslt libpng12 libbz2 libxml2 libxml2-dev libssl-dev libsslcommon2-dev libbz2-dev curl libcurl4-gnutls-dev libmcrypt-dev autoconf -y
4.创建目录
mkdir -p /data/{logs,app,tools}
5.拷贝宿主机文件到容器里(容器名称)
docker cp /data/tools/lnp_env/script 07fee43cc91a:/data/tools
6.在容器里操作
cd /data/app/
cp -rf /data/tools/script/nginx .
cp -rf /data/tools/script/php .
cp -rf /data/tools/script/luajit .
cd /usr/local/lib
cp -rf /data/tools/script/lib/* .
cd /data/tools/script
cp lua.conf /etc/ld.so.conf.d/
ldconfig
7.#lua
#/etc/ld.so.conf.d/lua.conf
#/data/app/luajit/lib
8.软连接
ln -s /data/app/php/bin/php /usr/local/bin
/lib/systemd/system/php-fpm.service
/lib/systemd/system/nginx.service
#软连接
cd /usr/lib64
ln -s libbz2.so.1.0.6 libbz2.so.1.0
ln -s libcrypto.so.10 libcrypto.so.1.0.0
ln -s libssl.so.10 libssl.so.1.0.0
9.镜像保存
docker commit 07fee43cc91a k8s1:5000/centos_lnmp:v1.0
异常情况:
Q1:Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
原因:海外镜像地址访问较慢
# vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://f13.m.daocloud.io","http://hub-mirror.163.com"]
}
重载及重启docker服务
systemctl daemon-reload
systemctl restart docker
Q2:php: error while loading shared libraries: libexslt.so.0: cannot open shared object file: No such file or directory
做好软连接
ln -s libexlt.so.10 libexslt.so.0