这篇文章主要介绍了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