博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker学习3:Docker Hello World
阅读量:2453 次
发布时间:2019-05-10

本文共 2847 字,大约阅读时间需要 9 分钟。

Docker Hello World
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
输出Hello world
[root@huixuan ~]# docker run ubuntu:15.10 /bin/echo "Hello World"
Unable to find image 'ubuntu:15.10' locally
Trying to pull repository docker.io/library/ubuntu ... 
15.10: Pulling from docker.io/library/ubuntu
7dcf5a444392: Pull complete 
759aa75f3cee: Pull complete 
3fa871dc8a2b: Pull complete 
224c42ae46e7: Pull complete 
Digest: sha256:02521a2d079595241c6793b2044f02eecf294034f31d6e235ac4b2b54ffc41f3
Status: Downloaded newer image for docker.io/ubuntu:15.10
Hello World
[root@huixuan ~]# 
各个参数解析:
docker: Docker 的二进制执行文件。
run:与前面的 docker 组合来运行一个容器。
ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world": 在启动的容器里执行的命令
以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。
运行交互式的容器
我们通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力
[root@huixuan ~]# docker run -i -t ubuntu:15.10 /bin/bash
root@9eb6867b6b7a:/# 
各个参数解析:
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。
此时我们已进入一个 ubuntu15.10系统的容器
我们尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表
root@9eb6867b6b7a:/# cat /proc/version
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
root@9eb6867b6b7a:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@9eb6867b6b7a:/# 
我们可以通过运行exit命令或者使用CTRL+D来退出容器。
启动容器(后台模式)
使用以下命令创建一个以进程方式运行的容器
[root@huixuan ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
bf9a047d6e66312523cf21d36e737d706076d9e7549c9677010006f882045741
[root@huixuan ~]# 
在输出中,我们没有看到期望的"hello world",而是一串长字符
bf9a047d6e66312523cf21d36e737d706076d9e7549c9677010006f882045741
这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps 来查看
[root@huixuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
bf9a047d6e66        ubuntu:15.10        "/bin/sh -c 'while..."   48 seconds ago      Up 47 seconds                           elastic_einstein
[root@huixuan ~]# 
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
在容器内使用docker logs命令,查看容器内的标准输出
[root@huixuan ~]# docker logs bf9a047d6e66
hello world
hello world
hello world
hello world
hello world
hello world
[root@huixuan ~]# docker  logs elastic_einstein
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
停止容器
我们使用 docker stop 命令来停止容器:
[root@huixuan ~]# docker stop bf9a047d6e66
bf9a047d6e66
[root@huixuan ~]# 
通过docker ps查看,容器已经停止工作:
[root@huixuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@huixuan ~]# 
也可以用下面的命令来停止:
[root@huixuan ~]# docker stop elastic_einstein

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-2153583/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-2153583/

你可能感兴趣的文章
您可能不需要翻译您JavaScript
查看>>
vs扩展代码_如何制作自己的VS代码扩展
查看>>
Python认证现已生效,并且其他freeCodeCamp 7.0版课程更新
查看>>
印地语freeCodeCamp YouTube频道+不和谐聊天现已上线
查看>>
flutter 模式_如何在Flutter中使用提供者模式
查看>>
强制删除npm_如何强制使用纱线或NPM
查看>>
css content属性_CSS之前和之后CSS –如何使用content属性
查看>>
如何将ApexCharts与Vue.js集成-详细指南
查看>>
初级开发和中级,高级的区别_如何从初级开发人员过渡到中级开发人员
查看>>
android应用开发_学习开发Android应用-无需经验
查看>>
freecodecamp_我们使用freeCodeCamp课程创建了本地免费编码学校。 这是我们学到的东西。
查看>>
Docker Remove Image:如何删除Docker镜像示例
查看>>
函数式编程 java_学习Java函数式编程-完整课程
查看>>
github 图像ai项目_如何在Github项目存储库中添加社交媒体图像
查看>>
国外开放知识图谱_什么是开放图谱,如何在我的网站上使用它?
查看>>
ntp时间同步会同步时区吗_如何处理时区并使软件与国际客户同步
查看>>
什么是JAMstack?如何开始?
查看>>
firebase使用_如何使用ReactJS和Firebase构建TodoApp
查看>>
nsfw_如何使用机器学习设置NSFW内容检测
查看>>
react中使用构建缓存_如何使用React构建客户支持实时聊天小部件
查看>>