目录
1.容器操作相关命令编辑
案例一:
案例二:
容器常用命令总结:
1.查看容器状态:
2.删除容器:
3.进入容器:
二、Docker基本操作——容器篇
1.容器操作相关命令
下面我们用两个案例来具体实操一下这些容器命令,方便大家更好的理解:
案例一:
创建并且运行一个Nginx容器
步骤一:去docker hub查看Nginx的容器运行命令
首先docker hub官网搜索 Nginx,切换到Overview这一栏;
然后往下滑,找到 How to use this image栏目,可以看到很多种方式,找一个相对简单的命令复制;
docker run --name some-nginx -d -p 8088:80 nginx
命令解读:
-
docker run
:创建并运行一个容器 -
-name
:给容器起一个名字,比如叫做 some-nginx -
-d
:后台运行容器。如果不加 ,容器会在前台运行,并占用当前终端 -
-p
:将宿主机端口与容器端口映射,冒号左侧8088是宿主机端口,右侧80是容器端口 -
nginx:镜像名称,例如nginx(不写tag版本,就默认是latest)
为什么要进行端口映射?
答:由于容器是对外隔离的,用户请求是无法直接访问到容器中的端口的;因此将主机的某个端口xx01与Nginx容器的80端口做一个映射;当用户想要访问nginx时,直接访问http://+主机IP地址:xx01
即可映射到容器中的端口http://+主机IP地址:80
步骤二:运行并访问Nginx容器
① 运行一个nginx容器:
docker run --name nginxC01 -d -p 88:80 nginx
② 查看容器列表
docker ps
③ 浏览器访问Nginx(检测是否成功)
-
如果配置正确,应该能够看到 Nginx 默认的欢迎页面,显示“Welcome to nginx!”
注意:访问前记得关闭防火墙,或者开放指定端口(例如我的是88)
关闭防火墙:
sudo systemctl stop firewalld
查看防火墙状态:
sudo systemctl status firewalld
防火墙开放88端口:
sudo firewall-cmd --zone=public --add-port=88/tcp --permanent
还有:如果你使用的是云服务器(比如 AWS、阿里云等): 确保你已在云服务的安全组(或者防火墙配置)中允许 88 端口的访问。
步骤三:查看并设置日志
查看容器日志的命令:
docker logs 【容器名】
或者
docker logs 【容器名】-f
-
添加-f参数可以持续查看日志,ctrl+c退出;
总结:
docker run命令的常见参数:
-
--name:指定容器名称
-
-p:指定端口映射
-
-d:让容器后台运行
查看容器日志的命令:
-
docker logs
-
添加-f参数可以持续查看日志
案例二:
进入Nginx容器,查看首页的HTML文件内容
步骤一:进入容器,进入我们刚刚创建的nginx容器
命令为:
docker exec -it nginxC01 bash
命令解读:
-
docker exec
:进入容器内部,执行一个命令; -
-t
:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互; -
nginxC01:要进入的容器名称;
-
bash:进入容器后使用的命令格式,bash是指定命令格式为Linux终端交互命令;
可以看到,容器都具有自己的目录结构:
步骤二:进入DockerHub官网,查看nginx容器的目录结构
通常在 How to use this image 这一块,作者都会写一些容器使用方法的信息。
可以看到作者告诉我们,静态HTML目录为: /usr/share/nginx/html
① 进入该目录
② 使用cat命令查看index.html的信息:
④ 使用exit退出容器
exit
⑤ 停止容器
docker stop nginxC01
容器常用命令总结:
1.查看容器状态:
-
查看当前正在运行的容器:
docker ps
-
查看所有容器(包括已停止的容器):
docker ps -a
2.删除容器:
-
删除已停止的容器:
docker rm <容器ID或容器名>
-
删除运行中的容器(需要添加
-f
参数强制删除):docker rm -f <容器ID或容器名>
3.进入容器:
-
进入容器并执行命令:
docker exec -it <容器名或容器ID> <命令>
例如,进入容器并打开交互式 Shell:
docker exec -it <容器名或容器ID> /bin/bash
注意:
-
docker exec
进入容器后,可以执行命令,例如查看容器内的文件; -
但不推荐在容器内直接修改文件。
-
推荐使用 Dockerfile 和构建镜像来管理容器的配置和文件。