容器看着像机器,实际是进程,是一个运行时程序。

要操作一个 Docker 容器,只需要执行 docker container 命令。 可以通过 help 查看

run 运行容器

基础使用:

docker container run nginx

Docker 会到本地区查找有没有叫做 nginx 的镜像(镜像这篇暂不涉及)。如果没有,会在 Docker Hub 官方仓库当中下载。

Docker 每条命令里都有可选参数。以下是 run 经常使用的一些可选参数:

-p / --publish

开放端口。比如开放容器的 80 端口和 22 端口,分别映射到宿主机的 8000 和 5000 端口。nginx 必须要开放端口才可以使用。

docker container -p 8000:80 -p 5000:22 nginx

-d / --detach

后台运行,打印容器 ID。

没有后台运行时,会显示 nginx 的日志:

后台运行以后,打印容器 ID 后可以接着做其他的事:

--name

给容器取一个名字,更容易记得住。 默认容器名称是随机生成的。

-e / --env

给容器添加环境变量。

-i, --interactive

开启交互式模式。

-t / --tty

开启 tty。

-i 和 -t 经常组合在一起使用,可以在容器中输入 shell 命令。 比如通过 Docker 安装一个 python 环境,然后在命令行运行 python:

docker container run -it python:3.7-alpine python

运行以后,可以直接获取 python 终端进行调试:

使用交互式进入已经在运行的容器:

docker container exec -it container_id

--rm

退出容器时自动删除容器,通常用在调试过程中。

-v / --volume

添加 volume 数据卷(数据卷是宿主机和容器之间的数据通道,这里暂不讨论。)

logs 日志查看

查看某个容器运行的日志。

docker container logs container_id

stop 命令

停止容器运行

docker container stop container_id(name)

rm 命令

删除容器

docker container rm container_id(name)

ls 查看容器

基础使用:

docker container ls

可以选择的参数:

-a / --all

展示所有的容器,包含运行的和没有运行的。

-q / --quiet

只显示 IDs。

-f / --filter

筛选容器。

列举所有退出的容器,并显示 ID:

docker container ls -aq -f "status=exited"

删除所有退出的容器:

docker container rm $(docker container ls -aq -f "status=exited") --force

Docker 入门:容器的更多相关文章

  1. Docker与容器快速入门

    Docker之风席卷全球,但很多人觉得docker入门确实不太容易,其原因在于很多知识点上没准备好,在docker解决了什么问题.怎么解决的.用什么技术解决的都还没想清楚的时候就去探索docker组件 ...

  2. Docker 入门 第二部分: 容器

    目录 Docker 入门 第二部分: 容器 先决条件 介绍 你的新开发环境 使用 Dockerfile 定义一个容器 Dockerfile 应用本身 requirements.txt app.py 构 ...

  3. Docker入门(三):容器(Containers)

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  4. docker入门——管理容器

    除了交互式的容器(interactive container),我们也可以创建长期运行的容器.守护式容器(daemonized container)没有交互式会话,非常适合运行应用程序和服务.大多数时 ...

  5. 第三章 Docker 入门

    第三章 docker 入门 3.1 确保docker已经就绪 首先查看docker程序是否存在,功能是否正常 [#3#cloudsoar@cloudsoar-virtual-machine ~]$su ...

  6. 学习 Docker - 入门

    Docker简介 一种虚拟容器技术. 一种虚拟化分方案: 操作系统级别的虚拟化: 只能运行相同或相似内核的操作系统: 依赖与linux内核特性:Namespace和Cgroups(Control Gr ...

  7. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  8. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  9. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  10. Docker入门教程(五)Docker安全

    Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...

随机推荐

  1. WordPress发布文章/页面时自动添加默认的自定义字段

    如果你每篇文章或页面都需要插入同一个自定义字段和值,可以考虑在WordPress发布文章/页面时,自动添加默认的自定义字段.将下面的代码添加到当前主题的 functions.php 即可: 1 2 3 ...

  2. 贪心--HDU 2021 发工资咯

    Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵,但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就 ...

  3. java的Timer定时器任务

    在项目开发中,经常会遇到需要实现一些定时操作的任务,写过很多遍了,然而每次写的时候,总是会对一些细节有所遗忘,后来想想可能是没有总结的缘故,所以今天小编就打算总结一下可能会被遗忘的小点: 1. pub ...

  4. 用Redislive监控redis

    注意:RedisLive是使用Python2.x编写,建议使用2.7,本次环境为Centos 7.2,默认Python版本2.7. 项目地址:https://github.com/nkrode/Red ...

  5. Java——抽象类与接口的前世今生

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 1.抽象类: 当编写 ...

  6. HTTP GET | POST | DELETE请求

    依赖: <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp& ...

  7. Spring Cloud学习 之 Spring Cloud Ribbon(负载均衡策略)

    文章目录 AbstractLoadBalancerRule: RandomRule: RoundRobinRule: RetryRule: WeightedResponseTimeRule: 定时任务 ...

  8. Python拆分一列为多列

    有的员工,没有公司开户行的银行卡,发放现金工资.有时人多,需要计算币数.现金工资表中,其中一列为实发工资,import pandas as pd,转化为pd.DataFrame. 面值[100,50, ...

  9. equals方法和 == 的使用

    equals方法的使用 equals方法 源码展示: public boolean equals(Object obj) { return (this == obj); } 解析: equals方法默 ...

  10. 我的linux学习日记day2

    RPM  软件包管理器 目的:降低软件安装难度原理 :将软件源代码加上一套安装规则打包到一起,用户只需要运行RPM systemctl start 服务名称 开启服务systemctl stop 服务 ...