目录
一、容器命令
二、创建并运行Nginx容器
1.1 去dockerhub查看Nginx容器运行命令
1.2 怎么访问Nginx?
1.3 查看容器日志
1.4总结
三、进入Nginx容器并修改HTML内容
3.1 进入容器
3.2 进入Nginx的HTML所在目录
3.3 修改index.html文件(容器内修改文件不推荐,了解)
3.4 退出容器
3.5 停掉容器(Stop)
3.6 再次启动容器
3.7 删除容器(永久删除)
3.8 总结
四、创建Redis容器,并支持数据持久化
4.1 利用docker run命令运行一个Redis容器
4.2 进入容器并连接Redis
一、容器命令
暂停与停止的区别:
暂停:如果选择暂停,操作系统会选择将容器内的进程挂起,容器关联的内存暂存起来,cup不再执行这个进程。如果被恢复的话,内存空间恢复,程序接着被运行
停止:表示不想玩了。直接把进程杀死,容器所占内存回收,保存的也就是文件系统(静态东西),一旦停止无法恢复,只能重新start,创建一个全新的进程
那我们怎么查看容器的运行状态呢?
docker ps 查看所有运行的容器及状态
docker logs 查看容器运行的日志
docker exec 进入容器执行命令
docker rm 删除指定容器,干干净净的删除,永远见不到了
二、创建并运行Nginx容器
1.1 去dockerhub查看Nginx容器运行命令
在dockerhub网页Nginx处,有许多的命令
最简单的使用方式
解读:
- docker run :创建并运行一个容器
- --name:给容器起一个名字,比如mn
- -p:将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(如果没有 这个,没有人能访问这个容器),宿主机的端口只要没有被占用就可写,容器内往往取决于应用程序本身,一般Nginx是80
- -d : 后台运行程序,比如我们的微信,我们把窗口关掉还在运行并没有退出
- nginx: 镜像的名称,例如,some-content-nginx,没写tag就是最新
下面这个命令是官方给的,但是我们先不用
$ docker run --name some-nginx -d -p 8080:80 some-content-nginx
我们使用这个命令,如果返回的是下面这种情况,说明端口80被占用了,我们换成81试试
docker run --name mn -p 80:80 -d nginx
容器一旦创建,一定会有一个唯一ID,除此之外,容器名mn也是全局唯一的
docker ps 命令查看运行的容器,最后一行是容器名
1.2 怎么访问Nginx?
因为我实在Windows配置的,所以我本机的地址就是localhost,我配置的端口号是81,所以在页面输入localhost:81即可,如下图所示
如果出现下图这种情况,说明容器部署成功了
如果是linux的话,输入192.168.174.100:80 其中192.168.100是我们虚拟机的静态ip,100是我们配置的端口号
1.3 查看容器日志
如果我们再刷新一下页面,就会再出现一个新的请求
刷新页面之后,下面的请求变成两个了
但是这样太麻烦,难道我们要每发送一个请求,再主动输入命令看日志信息?
查阅帮助文档之后发现, -f 可实现我们的这个功能
此时我们刷新一次页面,日志就会输出一次,不需要我们再手动调用
怎么停止日志跟踪? Ctrl+C
1.4总结
docker run常见的参数
- --name:指定容器名称
- --p:指定端口映射 (暴露了一个端口,让外界可以访问这个容器)
- --d:当容器后台运行
查看容器日志的命令:
- docker logs
- 添加-f参数可以持续查看日志
查看容器状态
- docker ps
三、进入Nginx容器并修改HTML内容
首先不推荐这种方式,只是做一个了解,因为进入容器是不方便的,其次这种方式没有日志信息,改的多了容易忘记
案例:进入Nginx容器,修改HTML文件内容,添加“传智教育欢迎您”
此时我们的容器还是存在的
3.1 进入容器
docker exec -it mn bash
命令解读:
- docker exec: 进入容器内部,执行一个命令
- -it: 给当前进入的容器创建一个标准输入、输出终端,晕乎我们与容器交互
- mn:要进入容器的名称
- bash:进入容器后执行的命令,bash是一个linux终端交互命令
如下图所示,后面那些3b......就是容器的ID
容器的内部也会有自己的一套文件系统
3.2 进入Nginx的HTML所在目录
那我们的Nginx存放在哪个目录下?官方会给我提示,如下图所示
# cd /usr/share/nginx/html
查看index.html文件
3.3 修改index.html文件(容器内修改文件不推荐,了解)
这种做法是替换
sed -i 's#Welcome to nginx#传智教育欢迎你#g' index.html
sed -i 's#<head>#</head><meta charset="utf-8">#g' index.html
如果出现下面这种情况,确实是成功了
3.4 退出容器
exit
3.5 停掉容器(Stop)
说明 docker ps 默认只会显示运行中的容器
怎么显示全部容器?
docker ps -a 显示全部容器
3.6 再次启动容器
命令:docker start mn(容器名)
3.7 删除容器(永久删除)
命令 :docker rm mn(容器名)
删除的条件:①不是运行中的容器。先stop再删
命令 :docker rm -f mn(容器名)
强制删除,不管是否在运行,直接杀死
(这个图截取的视频里面的,因为我不想删除这个容器)
3.8 总结
四、创建Redis容器,并支持数据持久化
下面是Redis运行文档,可以看看
4.1 利用docker run命令运行一个Redis容器
下面是两种方式,第一种最简单,所以选择第二种,因为第二种是持久化存储(下面这个只是一个模板)
$ docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning
我们在窗口运行下面这个命令
--appendonly yes 表示aof模式的那种持久化
docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
我们打开一下客户端看看,很成功啊!!!!!我都没想到我一次成功了 !!!!我很棒啊!!!!
4.2 进入容器并连接Redis
docker exec -it mr bash
进入到Redis 太完美!!!!
操作!!!
上面那种方式是先进入batch,再进入redis-cli
也可以直接进入
exit 退出