docker操作lnmp实践


本人目前处于初步探索阶段,很多并不理解,只是做个记录,方便以后回顾和纠错,各位客官酌情观看

Redis

官方Dockerfile

  1. 登录https://hub.docker.com镜像官方网站,搜索redis,可以看到具体的用法,我这里根据理解和需要做简单修改
  2. 准备dockerfile文件,我的目录结构以及dockerfile如下。conf目录放置配置文件redis.conf,data目录运行容器的时候会通过-v挂载到容器中的/data目录(为了持久化)
    在这里插入图片描述
#dockerfile文件内容
FROM redis

#系统里通过cat /etc/issue发现是Debian系统
#想编辑配置文件发现没有vim
#想通过apt-get install vim 发现Unable to locate package vim
#避免总是需要在容器中操作,通过apt-get update现在这里进行更新一下源
#但是我后面的都是宿主机的配置文件和容器中有映射,所以这里我就注释了,我修改宿主机就可以
#RUN apt-get update && apt-get install vim

#通过redis的说明,大概知道容器中/data是存放持久化文件的地方,定义成了匿名卷VOLUME,匿名卷就
#是将容器中的写入不放入容器的存储层,我们可以在启动的时候通过-v挂载本地目录到/data,这样容器中
#的持久化文件rdb生成,就会在宿主机的data目录看到,方便我删除某容器后重新构建容器的数据恢复

#这样操作方便构建镜像的时候使用自己编辑好的配置文件,但是我不希望在容器中修改redis.conf,
#我又想通过修改宿主机的redis.conf做到容器中的redis.conf也修改,
#这样我就不需要修改了宿主机redis.conf还需要构建镜像运行容器,而只需要重启容器,
#所以这里注释改成运行的时候用-v
#当然也可以不指定-v,不注释直接在容器中修改配置文件,然后重启容器
#COPY conf/redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
  1. 准备redis.conf配置文件,我是在服务器上单独下载了一份安装包,从里面拷贝的redis.conf,修改相应配置如下,并将修改好的文件放置在redis下的conf目录
daemonize no #该项是no,容器中没有前台后台的概念,其启动程序就是其应用程序
protected-mode no #保护模式是no
#bind 127.0.0.1 #根据提示,这行注释任何客户端都可以连接
  1. 构建镜像,进入redis目录,运行命令
docker build -t myredis .

之后就可以用docker image ls 查看到自己刚刚构建的镜像
6. 运行容器,然后就可以用docker container ls 查看运行的容器,进入容器需要用docker exec -it myphp bash

docker run -itd -v /docker/lnmp/redis/data:/data -v /docker/lnmp/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 6380:6379 --name myredis myredis

-d的意思是不让容器运行命令输出到页面,容器是否长久运行跟-d无关,个人理解一般带着-d,因为不带的话,容器运行会把redis启动后的界面返回到页面,这样如果按exit容器就退出了
7. 然后就可以在宿主机通过单独下载的那份安装包中的redis-cli进行连接操作 ,也可以通过docker exec -it myredis bash进入到容器中在/data目录中直接执行redis-cli就可以操作

自定义Dockerfile

暂无

Nginx

官方Dockerfile

  1. 接下来整nginx,同样的搜索nginx,可以看到具体的用法,我这里根据理解和需要做简单修改
  2. 目录结构和dockerfile文件,如果等下运行容器的时候是只读模式,则相应的需要创建nginx-cache目录和nginx-pid目录跟容器中的文件夹对应挂载,可查看官方用法说明
    在这里插入图片描述
FROM nginx

#同样的我不希望每次修改静态文件之后都需要重新构建镜像,生成容器
#而需要每次修改容器中都做相应改变,下面这行就注释了
#配置文件同理
#COPY /docker/lnmp/nginx/www /usr/share/nginx/html

#COPY /docker/lnmp/nginx/conf/nginx.conf /etc/nginx/nginx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值