容器生命周期管理

Docker创建新容器并运行[run]

语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • --name="nginx-lb": 为容器指定一个名称;
  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h "mars": 指定容器的hostname;
  • -e username="ritchie": 设置环境变量;
  • --env-file=[]: 从指定文件读入环境变量;
  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • --link=[]: 添加链接到另一个容器;
  • --expose=[]: 开放一个端口或一组端口;

实例:

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为yyflightNginx:

docker run --name yyflightNginx -d nginx:latest

执行完后可使用docker ps验证容器是否成功运行

Dcoker start/stop/restart

docker start 容器名:启动一个或多少已经被停止的容器

docker start yyflightNginx

docker stop 容器名:停止一个运行中的容器

docker stop yyflightNginx

docker restart 容器名:重启容器

docker restart yyflightNginx

Docker杀死运行中的容器[kill]

docker kill :杀掉一个运行中的容器。

实例:

杀死运行中的nginx容器yyflightNginx

docker kill yyflightNginx

Docker删除一个或者多个容器[rm]

语法:docker rm [OPTIONS] CONTAINER [CONTAINER...]

实例:

1、强制删除容器 yyflightNginx001、yyflightNginx02

docker rm -f  yyflightNginx001、yyflightNginx02

2、移除容器nginx01对容器db01的连接,连接名db

docker rm -l db 

3、删除容器nginx01,并删除容器挂载的数据卷

docker rm -v nginx01

Docker创建新容器但不启用[create]

语法:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

实例:

使用docker镜像nginx:latest创建一个容器,并将容器命名为yyflightNginx001

docker create --name yyflightNginx001 nginx:latest

Docker容器暂停和恢复[pause/unpause]

docker pause :暂停容器中所有的进程

暂停数据库容器db01提供服务:

docker pause db01

docker unpause :恢复容器中所有的进程

恢复数据库容器db01提供服务:

docker unpause db01

容器操作

查看本地正在运行的容器[ps]

语法:docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。
docker ps

Docker查看容器中运行的进程信息[top]

docker top:查看容器中运行的进程信息,支持 ps 命令参数。

实例:

查看容器yyflightNginx的进程信息:

docker top yyflightNginx

Dcoker获取容器的日志[logs]

语法: docker logs [OPTIONS] CONTAINER

OPTIONS说明:

  • -f : 跟踪日志输出
  • --since :显示某个开始时间的所有日志
  • -t : 显示时间戳
  • --tail :仅列出最新N条容器日志

实例:

跟踪查看容器yyflightNginx的日志输出(帮你查看这个容器在某个时间段被执行了什么操作):

docker logs -f yyflightNginx

Docker列出指定的容器的端口映射[port]

docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。

实例:

查看容器yyflightNginx的端口映射情况:

docker port yyflightNginx

Docker info|version|status

Docker版本信息查看[version]

语法:docker version [OPTIONS]

OPTIONS说明:

  • -f :指定返回值的模板文件。
docker version

查看Docker系统信息[info]

显示 Docker 系统信息,包括镜像和容器数。

docker info

Docker服务状态查看[systemctl status]

systemctl status docker

Docker本地镜像管理

查看本地镜像列表[images]

语法:docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • --digests :显示镜像的摘要信息;
  • -f :显示满足条件的镜像;
  • --format :指定返回值的模板文件;
  • --no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。
docker images

Docker删除本地一个或多少镜像[rmi]

语法:docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:

  • -f :强制删除;
  • --no-prune :不移除该镜像的过程镜像,默认移除;

实例:

强制删除本地镜像nginx/ubuntu

docker rmi -f nginx/ubuntu

Docker给本地镜像打标签[tag]

docker tag : 标记本地镜像,将其归入某一仓库。

语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Docker镜像打标签在我们的实际开发中非常常用,比如说公司的项目每次开发都会发布一个版本然后我们通过打标签来区分不同版本,如果以后想要回滚版本就可以使用指定的标签的镜像来创建容器。

实例:

1、比如说我本地现在有一个nginx的镜像:

docker images

2、我对nginx进行了开发,发布第一个版本,我就可以通过对这个版本打标签,打完标签后生成新的镜像:

docker tag nginx nginx:v001

Docker使用Dockerfile创建镜像[build]

语法:docker build [OPTIONS] PATH | URL | -

OPTIONS说明:

  • --build-arg=[] :设置镜像创建时的变量;
  • --cpu-shares :设置 cpu 使用权重;
  • --cpu-period :限制 CPU CFS周期;
  • --cpu-quota :限制 CPU CFS配额;
  • --cpuset-cpus :指定使用的CPU id;
  • --cpuset-mems :指定使用的内存 id;
  • --disable-content-trust :忽略校验,默认开启;
  • -f :指定要使用的Dockerfile路径;
  • --force-rm :设置镜像过程中删除中间容器;
  • --isolation :使用容器隔离技术;
  • --label=[] :设置镜像使用的元数据;
  • -m :设置内存最大值;
  • --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
  • --no-cache :创建镜像的过程不使用缓存;
  • --pull :尝试去更新镜像的新版本;
  • -q :安静模式,成功后只输出镜像ID;
  • --rm :设置镜像成功后删除中间容器;
  • --shm-size :设置/dev/shm的大小,默认值是64M;
  • --ulimit :Ulimit配置。

实例:

使用当前目录的Dockerfile创建镜像:

docker build -t w3xue/ubuntu:v1 . 

使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像:

docker build github.com/creack/docker-firefox

Dcoker查看指定镜像的创建历史[history]

语法docker history [OPTIONS] IMAGE

OPTIONS说明:

  • -H :以可读的格式打印镜像大小和日期,默认为true;
  • --no-trunc :显示完整的提交记录;
  • -q :仅列出提交记录ID。

实列:

查看容器nginx的创建历史记录:

docker history nginx

镜像仓库相关

登录/退出Docker镜像仓库[login/logout]

docker login : 登录到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

语法:

docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]

OPTIONS说明:

  • -u :登陆的用户名
  • -p :登陆的密码

实例:

登陆到Docker Hub:

docker login -u 用户名 -p 密码

登出Docker Hub:

docker logout

Docker从镜像仓库中拉取或者更新指定镜像[pull]

语法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS说明:

  • -a :拉取所有 tagged 镜像
  • --disable-content-trust :忽略镜像的校验,默认开启

实列:

从Docker Hub下载最新的ubuntu镜像

docker pull ubuntu

从Docker Hub下载repository为ubuntu的所有镜像

docker pull -a ubuntu

Docker将本地的镜像上传到镜像仓库[push]

docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

语法:docker push [OPTIONS] NAME[:TAG]

OPTIONS说明:

  • --disable-content-trust :忽略镜像的校验,默认开启

实例:

上传本地镜像nginx:v001到镜像仓库中:

docker push nginx:v001

查询Docker Hub镜像[search]

语法:docker search [OPTIONS] TERM

OPTIONS说明:

  • --automated:弃用,只列出自动构建类型的镜像。
  • --filter , -f:基于给定条件过滤输出。
  • --format:使用模板格式化显示输出。
  • --limit:Max number of search results ,默认值25。
  • --no-trunc:禁止截断输出。
  • --stars , -s:弃用,只显示收藏数不小于几颗星的镜像,移到--filter中使用。

从Docker Hub查找所有镜像名包含redis,并且收藏星数大于10的镜像

docker search --filter stars=10 redis

从Docker Hub查找所有镜像名包含redis的镜像

docker search redis

参考文章

Dcoker命令在线速查手册

 

Docker日常工作常用命令的更多相关文章

  1. Docker基础和常用命令

    Docker基础和常用命令 一,Docker 简介 1.1,什么是 Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,nam ...

  2. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  3. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  4. Docker系列之常用命令操作手册

    目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4.Docker容器操作 Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Doc ...

  5. nginx日常维护常用命令

    http://www.jb51.net/article/47750.htm 一.简明nginx常用命令 1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. ...

  6. ubuntu工作常用命令及需要留意的点汇总

    这段时间比较忙,先是去北京出差一段时间,然后是福建项目部署上线,领导不愿意招人,只苦了我们下面的人,今天得空,简单汇总下ubuntu服务器部署的常用命令,及日常学习使用感受: 0.书籍买的<循序 ...

  7. Docker三剑客之常用命令

    一.docker-machine 命令 说明 docker-machine create 创建一个 Docker 主机(常用-d virtualbox) docker-machine ls 查看所有的 ...

  8. Docker入门以及常用命令

    目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...

  9. docker入门及常用命令

    Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

随机推荐

  1. UiPath录制器的介绍和使用

    一.录制器(Recording)的介绍 录制器是UiPath Studio的重要组成部分,可以帮助您在自动化业务流程时节省大量时间.此功能使您可以轻松地在屏幕上捕获用户的动作并将其转换为序列. 二.录 ...

  2. python小题目练习(五)

    题目:Python实现快速排序 代码实现: """Author:mllContent:Python实现快速排序Date:2020-11-05""&qu ...

  3. Jenkins + maven + svn 自动部署项目

    1.安装Jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins. ...

  4. Android高仿网易云音乐-启动界面实现和动态权限处理

    效果 实现分析 基本上没有什么难点,就是布局,然后显示用户协议对话框,动态处理权限,判断是否显示引导界面,是否显示广告界面等. 布局 <?xml version="1.0" ...

  5. RASP | 远程Java应用的RASP调试教程

    远程Java应用的RASP调试教程 介绍 Java RASP是基于Java Agent技术实现的,而Java Agent代码无法独立启动,必须依赖于一个Java运行时程序才能运行. 如何调试一个Jav ...

  6. echart图表中y轴小数位数过长展示效果不佳

    业务中后端返回的精密数据,小数过长,导致所有数据差距不大,在图表中显示重合为一条直线 解决方法设置echart的min属性 min: "dataMin", 但是设置了以后又出现了问 ...

  7. 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操

    目录 一.模块的绝对导入和相对导入 二.包的概念 三.编程思想的转变 四.软件开发目录规范 五.常见的内置模块 一.时间模块之datatime模块 1.datetime.datetime.today( ...

  8. 【RocketMQ】消息的消费

    上一讲[RocketMQ]消息的拉取 消息消费 当RocketMQ进行消息消费的时候,是通过ConsumeMessageConcurrentlyService的submitConsumeRequest ...

  9. 干货分享:小技巧大用处之Bean管理类工厂多种实现方式

    前言:最近几个月很忙,都没有时间写文章了,今天周末刚好忙完下班相对早点(20:00下班)就在家把之前想总结的知识点写出来,于是就有了这篇文章.虽无很高深的技术,但小技巧有大用处. 有时我们经常需要将实 ...

  10. Python算法之动态规划(Dynamic Programming)解析:二维矩阵中的醉汉(魔改版leetcode出界的路径数)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_168 现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行" ...