小飞学习Docker之使用容器

本文介绍了如何使用Docker运行Nginx容器,包括使用`docker run`命令创建并启动容器,设置容器名称、端口映射,以及以后台方式运行。通过`docker ps`检查容器状态,通过访问容器的8080端口验证Nginx服务正常。此外,还探讨了检查容器健康状况的方法,如查看日志和通过`docker exec`进入容器内部。最后,讨论了数据卷的使用,实现容器与数据的分离,并展示了如何挂载数据卷。

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

在继续本文之前,首先要确认你已经安装了Docker,确保Docker已经就位。第一步就是执行sudo docker info命令检查相关环境。

通过上面一章节我们已经了解到容器相当于一个跑起来的镜像,是一个运行的执行环境,那下面通过使用docker运行nginx来看下容器相关的一些操作。

运行Nginx容器

首先可以使用 docker run 命令来创建 Nginx 容器,执行如下命令。

docker run --name containerName -p 8080:80 -d nginx

来让我们先看下命令。

  1. 首先我们执行docker run,会先从本地查看有没有该镜像,如果有执行起来一个容器;如果没有就去默认的镜像仓库(这里是Docker Hub)拉取镜像到本地,然后再起一个容器。
  2. --name:给容器起一个唯一名字,方便后续使用定位;如果没有这个指令,docker 会随机生成一个名字。
  3. -p:将宿主机端口与容器端口映射,这样通过docker 的网桥,可以通过宿主机地址访问到容器内部。8080是宿主机的端口,80 是容器端口。通过这种暴露方式我们就可以通过http://localhost:8080 访问nginx 的主页。
  4. -d 是指以后台形式启动,同样有-it 使用伪终端在前端输出,后面会提到

执行完可以看下效果:

问题来了,因为是后台运行,我们怎么知道容器已经正常起来了?

检查容器健康情况

在真正生产环境上我们要判断容器是否健康,可以从浅至深的来检查几个方面。

容器本身的运行情况

可以通过 docker ps 命令,查看正在运行的容器,并检查是否有目标容器,关注状态

docker ps

另外我们从上面也可以看出是将宿主机的8080端口映射到容器的80端口了。

业务指标

业务指标就有很多,比如说端口是否正常被占用、程序是否正常启动、日志是否打印正常等等,像这个demo而言,只需要看下nginx首页是否可以正常访问。

然后访问后,进一步查询容器日志,可以看到访问日志

docker logs nginx # 容器名称

进入容器内部

走到这里,其实一个容器应用已经可以使用了,但问题是我们想进一步修改内容,或者说进去看业务日志,那怎么办?其实容器提供了一种伪tty的方式让我们在终端进入到容器内部,类似于ssh

docker exec -it nginx /bin/sh

上面的命令通过docker exec,搭配 -it 还有 /bin/sh 模拟一个终端,让我们直接于容器内部交互。执行完之后,我们就可以像平常linux系统进行修改了,举个例子,修改nginx 主页内容

cd /usr/share/nginx/html
vim index.html

我们其实发现业务代码放到容器里面,那如果有多个实例岂不是要都修改?这里呢,可以理解这种方式是无状态的实例,也就说容器不与其他有依赖,易于扩展。可以使用编排工具,将修改后的镜像分批分发替换老镜像完成版本的迭代。

当然还有另外一种方式,就是使用数据卷。

挂载数据卷

数据卷是一个虚拟目录,指向宿主机的某个目录,这样将容器和数据分离,同时也可以让多个容器共享同一份数据。

可以在创建容器的时候,通过 -v 参数让宿主机的一个目录挂载到容器的制定目录下。

docker run --name nginx -v /opt/html:/usr/share/nginx/html -p 8080:80 -d nginx

这里是将宿主机的/opt/html挂载到容器下的/usr/share/nginx/html下,这样不管修改哪一侧,都会同步。

容器常用命令总结

容器常用命令

操作命令

常用参数说明

docker run

创建启动容器

-it:可交互的伪终端,进入容器内部

--name:为容器起名

--rm:运行完毕删除容器

-d:容器后台运行

-v:卷挂载

docker ps

列出正在运行的容器

docker exec 

进入容器内部执行

-it:交互终端执行

docker rm

删除容器

docker start | stop

启动或停止容器

docker logs

查询运行日志

docker inspect

获取容器配置信息

--format '{{.NetworkSettings.IPAddress}}' 容器名称

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值