千家信息网

docker的hello-world镜像怎么运行

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"docker的hello-world镜像怎么运行"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年12月03日docker的hello-world镜像怎么运行

本篇内容介绍了"docker的hello-world镜像怎么运行"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 介绍

下载hello-world这个镜像。

使用docker run命令。

比如:

$ docker run hello-world

主要是输出一些文本信息,然后就退出了。

使用docker ps可以查看容器的进程。

不过是空的,因为一运行就退出,只是输出信息,输出完就结束了。

可以使用docker ps -a来查看退出过的进程。

比如:

$ docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMESb25a96c17bf4        hello-world         "/hello"            About a minute ago   Exited (0) About a minute ago                       mystifying_saha
2. 运行容器

上面只是演示hello world而已,我们运行些有用点的容器。

比如:

$ docker run -it ubuntu bash

运行的是ubuntu这个镜像,如果你的系统上没有这个镜像,会先下载下来。

bash是表示进入那个ubuntu的镜像的容器的shell,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。

这样就相当于进入了另一台ubuntu。

而且这个ubuntu跟你原来的系统是隔离的。

这样也没多大意义,我们经常会用docker来跑一些服务,比如web服务。

那就运行一个nginx容器试试。

$ docker run -d -p 80:80 --name webserver nginx

镜像名称是nginx--name表示为这个容器取个名称叫webserver

运行之后,你用docker ps查看一下容器。

$ docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMESa1d4b615709b        nginx               "nginx -g 'daemon ..."   5 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 443/tcp   webserver

然后你可以使用curl http://127.0.0.1查看一下,是否运行了nginx服务。

使用docker stop命令可以停止这个容器的运行。

比如:

$ docker stop webserver

停止之后输入docker ps发现是空的,这个时候要输入docker ps -a才能查看退出的容器。

可以使用下面这条命令,清除所有已退出的容器。

$ docker rm -f $(docker ps -a | grep Exit | awk '{ print $1 }')

之前运行nginx容器的时候,有使用-p 80:80这个参数。

这个表示端口映射。

解释前,我们先来改一下。

$ docker run -d -p 8080:80 --name webserver nginx

查看一下运行状态:

$ docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES45e47ed889f8        nginx               "nginx -g 'daemon ..."   4 seconds ago       Up 3 seconds        443/tcp, 0.0.0.0:8080->80/tcp   webserver

现在你可以需要使用curl http://127.0.0.1:8080才能访问了。

也就是说,-p参数中,第一个端口是暴露在外面的端口,外面可以访问的端口。

至于-d嘛,就是以守护态运行。

有些应用根本就不需要暴露接口在外面,比如下面这个:

$ docker psmposenginx_gitlab_17e4493b736d2        sameersbn/postgresql:9.5-4   "/sbin/entrypoint.sh"    2 days ago          Up 2 days           5432/tcp                                                gitlabcomposenginx_postgresql_18cd6c90f9a52        sameersbn/redis:latest       "/sbin/entrypoint.sh "   2 days ago          Up 2 days           6379/tcp

这两个端口在外部是无法访问的,没有绑定在0.0.0.0这个ip上,这个有什么用呢。

其实有个参数是--link,供单机的容器之间打通一个网络通道,这样不必通过ip来访问,而是一个别名。

比如,先运行两个容器:

$ docker run --name gitlab-postgresql -d \    --env 'DB_NAME=gitlabhq_production' \    --env 'DB_USER=gitlab' --env 'DB_PASS=password' \    --env 'DB_EXTENSION=pg_trgm' \    --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \    sameersbn/postgresql:9.6-2$ docker run --name gitlab-redis -d \    --volume /srv/docker/gitlab/redis:/var/lib/redis \    sameersbn/redis:latest

这两个容器有两个名称,分别是gitlab-postgresqlgitlab-redis

然后再启动一个暴露接口的容器,去连接这两个容器。

$ docker run --name gitlab -d \    --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \    --publish 10022:22 --publish 10080:80 \    --env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \    --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \    --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \    --volume /srv/docker/gitlab/gitlab:/home/git/data \    sameersbn/gitlab:8.16.6

其中postgresqlredisio是容器的主机别名。

使用docker restart命令可以重启容器。

还有一个参数比较常用,就是-rm,这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm 。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 -rm 可以避免浪费空间。

"docker的hello-world镜像怎么运行"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

容器 运行 镜像 两个 参数 命令 端口 输入 输出 只是 名称 服务 信息 内容 别名 情况 接口 时候 更多 标准 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术的参考文献 河南本地软件开发零售价格 国防科技大学能去互联网 乡镇网络安全专题会议发言材料 中国互联网快速发展属于科技吗 街电春雨网络技术可靠吗 软件开发英语需求分析报告 日产工作中注重网络安全 商业软件开发相关的法律法规 软件开发的项目介绍 r获取网页上的数据库 游族网络技术分析 demo软件开发 塔式服务器招标 数据库显示置疑问题 三星服务器管理口地址 红外谱图数据库 阳高口碑好的网络安全创新服务 计算机网络技术专业可以接本吗 epic为啥显示服务器离线 分享经济软件开发 重庆云阳免费生鲜软件开发 查询所有数据库语句怎么写 知乎微博软件开发商怎么盈利 梦幻新诛仙剑履山河服务器下载 网络安全行业净利润 计算机网络技术知识大全百度 sql数据库数据结构 我的世界服务器被外挂炸怎么办 网络安全授权功能作用
0