docker搭建lnmp环境(示例代码)

本文详细介绍了如何使用Docker搭建LNMP环境,包括启动、管理和配置Nginx、PHP-FPM容器,以及端口映射和日志查看等关键步骤,适合初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章主要介绍了docker搭建lnmp环境(示例代码)以及相关的经验技巧.

入门参考 http://www.runoob.com/docker/docker-install-nginx.html

十大常用命令玩转docker

1、 #从官网拉取镜像,pull英语中是拉的意思

docker pull <镜像名:tag>

如:docker pull centos

2、#搜索在线可用镜像名

docker search <镜像名>

如:docker search centos( 在线查找centos的镜像)

3、#查询所有的镜像,默认是最近创建的排在最上

docker images

4、#查看正在运行的容器

docker top <容器ID>
docker ps -a
docker stop <容器ID>                #停止某个容器 
docker start <容器ID>               #启动某个容器 
docker kill <容器ID>                #杀掉某个容器
docker cp 2e4b523f4752:/etc/nginx   /home/data/   #代码中的2e4b523f4752为<容器ID> 
docker run -it --name=myNginx  -v /home/data/nginx /etc/nginx -p 80:80  nginx  
docker exec -it 2e4b523f4752  /bin/bash


5、#删除单个镜像<容器ID>

docker rm -f <CONTAINER ID>   

6、#进程ps应用

ps -ef|grep nginx

7、#查询某个容器的所有操作记录。

docker logs {容器ID|容器名称} 

8、# 制作镜像  使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”:

docker commit 93639a83a38e  wsl/javaweb:0.1

9、#启动一个容器

docker run -it --rm  -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link mysql:mysql --name php php
docker run -d -p 58080:8080 --name javaweb wsl/javaweb:0.1 /root/run.sh

解释:-d:表示以“守护模式”执行/root/run.sh脚本

          -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。

          -name:为容器命名

10、#最后补充一个启动docker服务的命令很简单:

service docker start

11、#查看有没有同容器一同创建的网络,,如果列出docker网络中有则删除
docker network ls
docker network rm container_name_net

地址:https://jingyan.baidu.com/article/cd4c29791ec318756e6e6020.html

日志查看

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

例子:参考:docker logs-查看docker容器日志 - 简书

//查看指定时间后的日志,只显示最后100行
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

//查看最近30分钟的日志
$ docker logs --since 30m CONTAINER_ID

//查看某时间之后的日志:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

//查看某时间段日志:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

启动docker

service docker restart

stop: Unknow instance、

start:job failed to start

 stop:Unknow job:docker

start: Unkonw job:docker

常用

  • docker ps: 查看当前运行的容器
  • docker ps -a:查看所有容器,包括停止的。

容器的管理(创建、查看、启动、终止、删除) 

参考:Docker实践(二):容器的管理(创建、查看、启动、终止、删除)_孤天浪雨的博客-优快云博客_docker 创建容器

删除容器

docker rmi <存储库>  //运行docker  images查看REPOSITORY
docker rm -f mysql  //我偏向于这个操作,mysql指的是CONTAINER ID

如何在Linux下安装vim编辑器(Ubuntu)

apt-get install vim

遇到问题就先

apt-get update再试试

CentOS和Ubuntu区别 https://blog.youkuaiyun.com/qq_21033663/article/details/78010230

详细:https://jingyan.baidu.com/article/046a7b3efd165bf9c27fa915.html

Linux

文件异常关闭处理

rm .{your file name}.swp

https://blog.youkuaiyun.com/xiaoshunzi111/article/details/50051679

创建文件 touch+文件名 

Docker容器进入的4种方式

https://www.cnblogs.com/xhyan/p/6593075.html

nginx启动、重启、关闭

nginx -s reload

详细:https://blog.youkuaiyun.com/w1014074794/article/details/51881050

基于Docker搭建LNMP环境

https://blog.youkuaiyun.com/xy752068432/article/details/75975065

docker 进入正在运行的容器

 docker exec [OPTIONS] CONTAINER COMMAND [ARG…] 

//用法:通过Docker命令进入Mysql容器内部,这里的mysql指的是NAMES
docker exec -it mysql /bin/bash
## 或者
docker exec -it mysql bash

先下载镜像文件docker images然后,启动创建nginx容器

一、启动命令:docker run -d --name ce-nginx155 -p 3344:80 nginx

# -d 后台运行

# --name 容器命名

# -p 宿主机端口:容器内部端口(文章末尾 有关于端口映射的详细讲解)

[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    605c77e624dd   2 months ago   141MB
centos       latest    5d0da3dc9764   6 months ago   231MB
[root@localhost ~]# docker run -d --name ce-nginx155 -p 3344:80 nginx
971dd8810da2b1099aba5545c110878d4000289b5262d3df4f04c6b114743ae9
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
971dd8810da2   nginx     "/docker-entrypoint.…"   14 seconds ago   Up 13 seconds   0.0.0.0:3344->80/tcp, :::3344->80/tcp   ce-nginx155
[root@localhost ~]# curl 127.0.0.1:3344

二、进入容器,可以对相关配置进行设置
[root@localhost ~]# docker exec -it ce-nginx155 /bin/bash
root@971dd8810da2:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@971dd8810da2:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@971dd8810da2:/# cd /etc/nginx/

 使用docker部署nginx_咛果果的博客-优快云博客_使用docker搭建nginx

https://blog.youkuaiyun.com/yjk13703623757/article/details/69212521

docker 给运行中的容器设置端口映射

1.提交一个运行中的容器为镜像
docker commit containerid foo/live
2.运行镜像并添加端口
docker run -d -p 8000:80  foo/live /bin/bash

https://blog.youkuaiyun.com/libraryhu/article/details/52443447

修改fastcgi_pass

PS:此处是通过nginx+php实现web服务,nginx配置文件的fastcgi_pass应该配置为myphp-fpm容器的IP。

fastcgi_pass  172.17.0.4:9000;

容器IP的查方法

docker inspect 容器ID或容器名 |grep \'"IPAddress"\'
//或者
docker inspect 容器ID或容器名

详细:

https://segmentfault.com/q/1010000004854045

http://www.runoob.com/docker/docker-install-php.html

file not found. nginx php nginx 如何开启解析 PHP 的功能

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; 改为 fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;

参考https://help.aliyun.com/document_detail/42731.html

php镜像版本太老,切换镜像

新pull一个镜像

docker pull kvaps/php-mysql

绑定9000

docker run -p 9000:9000 --name  myphp-kvaps -v E:\\docker\\nginx/www:/www -v E:\\docker\\nginx/conf:/usr/local/etc/php -v E:\\docker\\nginx/logs:/phplogs   -d kvaps/php-mysql

/**创建一个phpfpm容器
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,即主机上的/var/nginx/www/html和容器中/var/www/html目录是同步的
–name 容器的名字NAMES IMAGE
–link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务NAME:服务
**/

docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link xy_mysql:mysql --name xy_phpfpm php:7.0-fpm 

 参考:

https://www.jianshu.com/p/f244eb57820c  

https://yq.aliyun.com/articles/46013

https://www.cnblogs.com/huaerr/p/7039797.html

https://www.cnblogs.com/iosdev/p/3439834.html

命令:

Docker容器的端口映射

//将容器内的8080端口映射为宿主机的58080,这样就向外界暴露了58080端口,可通过Docker网桥来访问容器内部的8080端口
docker run -p 58080:8080 -d nginx

进入某容器

docker exec -it 2772 /bin/bash

查IPAddress地址 

docker inspect 6320

停止某个容器

docker kill 6320

拉镜像

docker pull nginx/php/mysql

进入容器(容器id:6320)

docker exec -it 6320 /bin/bash

启动镜像并关联其他容器(容器id6320)

docker run -d -p 80:80 --name nginx\\ -v /var/nginx/www/html:/var/www/html\\ --link 6320 --name nginx nginx

nginx重启

nginx -s reload

cp 复制

docker cp /usr/src/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz 9b6741a9ef22:/usr/src/

#将容器中的文件拷贝出来
sudo docker cp 容器ID:/etc/mysql/my.cnf /home/tom/
#将容器中的文件拷贝回去
sudo docker cp /home/tom/my.cnf  容器ID:/etc/mysql/

touch 创建文件

mkdir 创建文件夹

mv 改名

//仅把/home/user目录的权限设置为rwxrwxrwx
chmod 777 /home/user

//表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
chmod -R 777 /home/user

//是将文件状态改为可执行
chmod +x install.sh

以上就是本文的全部内容,希望对大家的学习有所帮助,本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文地址:https://www.cnblogs.com/cxscode/p/9130747.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值