资讯专栏INFORMATION COLUMN

Working with Containers

codecraft / 646人阅读

摘要:先回顾之前学习过的一些命令交互式运行运行守护进程容器列表显示容器的标准输出命令格式能干什么显示后能执行的命令命令使用查看特定命令的使用方式中运行一个应用参数表示将容器内部要用到的网络端口映射到主机显示容器的详细信

先回顾之前学习过的一些命令
shelldocker run -i...交互式运行
docker run -d...background运行`daemon`守护进程
docker ps...Lists containers.(容器列表)
docker logs...Shows us the standard output of a container.(显示容器的标准输出)
docker stop...Stops running containers.

docker命令格式:

shell[sudo] docker [command] [flags] [arguments]...
Seeing what the Docker client can do
  

docker client能干什么

[sudo] docker...显示docker后能执行的命令

Seeing Docker command usage
  

docker 命令使用

languagedocker command --help...查看特定命令的使用方式
Running a Web Application in Docker
  

docker中运行一个web应用

language sudo docker run -d -P training/webapp python app.py

-P参数表示将容器内部要用到的网络端口映射到主机

languagedocker ps -l -a

-l显示容器的详细信息,-a表示显示所有的容器信息(包含以前运行的)

languagedocker run -d -P training/webapp python app.py
docker run -d -p 5000:5000 training/webapp python app.py

-P表示将image镜像的任何端口映射到我们自己的主机
-p自己指定image的网络端口和主机的端口

实战:
命令行输入

languagedocker run -d -P training/webapp python app.py
docker ps -l -a
out:
adolph@geek:~$ docker ps -a -l
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                     NAMES
1179c34ac0e0        training/webapp:latest   "python app.py"     2 minutes ago       Up 2 minutes        0.0.0.0:32769->5000/tcp   elegant_curie

这里重要的是port下面的值:0.0.0.0:32769->5000/tcp,我的理解是:这条命令把0.0.0.0:32769这个自己主机的端口映射到容器里的5000端口,所以当你在自己的浏览器输入0.0.0.0:32769是它会映射到images的5000端口从而访问app.py的网页

A Network Port Shortcut
  

网站端口Shortcut

languagedocker port [container id|container name]

这条命令表示输出容器的端口和映射端口,

language5000/tcp -> 0.0.0.0:32769
adolph@geek:~$ docker port 1179c 5000
0.0.0.0:32769
Viewing the Web Application"s Logs
  

查看web应用的logs

languageadolph@geek:~$ docker logs -f elegant_curie 
 * Running on http://0.0.0.0:5000/
172.17.42.1 - - [12/May/2015 17:49:25] "GET / HTTP/1.1" 200 -
172.17.42.1 - - [12/May/2015 17:49:26] "GET /favicon.ico HTTP/1.1" 404 -

-f功能类似于tail -f而且我们可以看到标准输出的信息

Looking at our Web Application Container"s processes
  

查看web应用容器的进程

使用docker top命令

languageadolph@geek:~$ docker top elegant_curie 
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                32280               2150                0                   01:48               ?                   00:00:00            python app.py

Inspecting our Web Application Container
  

检查web应用容器

languagedocker inspect comtainer name

Json格式输出信息

Stopping&Start&Remove our Web Application Container
  

停止和启动我们的web容器

languageadolph@geek:~$ docker ps -l
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                     NAMES
1179c34ac0e0        training/webapp:latest   "python app.py"     25 minutes ago      Up 25 minutes       0.0.0.0:32769->5000/tcp   elegant_curie       
adolph@geek:~$ docker stop elegant_curie 
elegant_curie
adolph@geek:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES                                                 
adolph@geek:~$ docker start elegant_curie 
elegant_curie
adolph@geek:~$ docker ps -l
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                     NAMES
1179c34ac0e0        training/webapp:latest   "python app.py"     26 minutes ago      Up 7 seconds        0.0.0.0:32770->5000/tcp   elegant_curie       

adolph@geek:~$ docker stop elegant_curie 
elegant_curie
adolph@geek:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
adolph@geek:~$ docker rm elegant_curie 
elegant_curie
命令总结
shelldocker...显示docker的命令
docker command --help...显示某个命令的帮助
docker ps -a -l...显示所有的容器信息
docker run -d -P ...-P映射容器的5000端口到主机的任意端口[32768-61000]
docker run -d -p ...-p自己指定映射端口
docker port [comtainer id|container name]...查看容器的端口情况
docker logs -f [container name|id] ...输出容器标准输出
docker inspect [container name]...输出json格式的容器的详细信息
docker top [container name...查看容器的进程
docker stop|start|rm [container name]...停止|开始|删除容器

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26390.html

相关文章

  • docker-compose: scale and link

    摘要:更多文章访问的小博客 Learned how to use docker compose to create a scalable web app with nginx. Month ago, I built my apps with docker and used Nginx outside the docker as a reverse proxy server. Now I ha...

    CoreDump 评论0 收藏0
  • SegmentFault 技术周刊 Vol.5 - Docker丨Build, Ship, Run,

    摘要:此刻的后手指依旧飞速地敲打键盘,丝毫没有要停不下来意思。阅读本期技术周刊,你不光能弄明白什么是,使用的意义何在,还将被传授秘籍,以达的境界。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,听到后排动感十足的清脆键盘响,我就能猜到公司程序员定...

    Panda 评论0 收藏0
  • Mirantis将帮助AT&T为5G构建网络云

    摘要:当公司第一次宣布该项目飞艇时,它说它正在将的名字改为网络云。从那时起,该公司将其称为的网络云。的原始软件是为使用数据中心中的虚拟机而构建的。这些容器由一个称为的容器管理系统管理。然而,在其内,它仍将有大量的工作负载在虚拟机上运行。Mirantis to help a t t build network cloud for 5gtweetUS telecom giant a t t will ...

    xumenger 评论0 收藏0
  • Awesome Python

    摘要:漢字拼音 Awesome Python A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php. Awesome Python Environment Management Package Management Package Repositorie...

    fizz 评论0 收藏0
  • 恭喜 Fluentd 从 CNCF 毕业

    摘要:今年新闻不断,多数早期进入的项目都相继宣布毕业。云原生计算基金会在美国时间年月日宣布今天正式毕业了。这是中毕业的第个项目,之前已经毕业的项目为和。截至目前,在上有个,个,以及位贡献者,超过。附一张的图,有空会写下的使用姿势再次恭喜毕业。 今年新闻不断,多数早期进入 CNCF 的项目都相继宣布毕业。 CNCF(云原生计算基金会)在美国时间 2019 年 4 月 11 日宣布 fluent...

    omgdog 评论0 收藏0

发表评论

0条评论

codecraft

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<