Docker入门学习2 ——容器基本操作

摘要:介绍Docker容器相关的操作命令。

知识点:
run ps start attach exec top stop kill
inspect rm logs images rmi pull push
commit build

注:可以使用docker COMMAND --help来查看COMMAND的详细用法,本文只介绍常用的子集。

一.启动容器

启动之前未启动过的容器:

docker run [-d] [-i] [-t] IMAGE [Command] [Arguments]
· -d:daemon,启动守护式容器
· -i:interactive,启动交互式容器
· -t:tty,允许标准输入输出

还有一些其他的选项
· --name=NAME:给容器指定一个别名。否则寻找容器要用ID或系统自带名字,很不友好。

启动执行一次命令的容器

docker run ubuntu echo "hello world"

这样的容器执行一次命令就停止了。

启动交互式容器

docker run -i -t ubuntu /bin/bash

接下来就进入了容器的bash中,可以执行各种命令,好像虚拟机一样。
此时想要退出容器,可以使用exit退出并停止容器,或【Ctrl+P】+【Ctrl+Q】的escape组合,退出而不停止容器。

启动守护式容器

这样的容器能够长期运行,没有会话,适合运行各种服务。下面是启动守护式容器的几种方法:

  1. 在交互式容器中使用【Ctrl+P】+【Ctrl+Q】的命令返回,容器因为没有停止,变为守护式容器。
    如果使用ps命令来查看,会发现这个容器直接被列出。
    此时若想返回这个容器,要使用docker attach 容器名命令,附加到运行的容器中。
  2. 使用run命令来建立:
    docker run -d 镜像名 [command] [args]
    -d的意思是,使用后台的方式启动守护式的容器,执行命令。但是命令运行结束后,容器依然会停止。
    举例:docker run --name=test -d ubuntu "while true ;do echo hello world; sleep 1; done"
    如果想要了解守护式容器中的运行情况,需要使用log命令,后文介绍。

重新启动已经停止的容器:

docker start [-i] 容器名
· -i:以交互的方式重新启动。
docker start -i NAME

二.操作容器

列出容器

docker ps [-a] [-l]
· -a:列出所有的容器(包括停止的)
· -l:列出新创建的容器
· 默认:只列出未停止的容器

执行此命令后,docker将列出容器列表的信息。其中那一串很长的无规律串就是容器的ID,而name一列就是你指定或系统指定的容器别名。

查看某个容器的配置docker inspect ID或者别名

执行此命令后,docker以json格式列出指定容器很多信息。包括操作系统版本,名称,命令,网络配置等。

删除容器docker rm 容器名

只能删除已经停止的容器,不能删除运行中的容器。
删除后,ps命令会找不到那个容器。

查看容器的运行情况

docker logs [-f] [-t] [--tail]

  • -f:--follows=true|false,告诉日志,一直跟踪容器的变化。
  • -t:--timestamps=true|false,为返回的结果时间戳。
  • --tail:选择返回结尾处多少数量的日志。不指定的话,返回所有日志。

举例:docker logs --tail=5 -tf test查看test容器最后五条命令,带时间戳并且随时更新。

查看容器中的进程情况

docker top 容器名

在运行的程序中启动新的进程

docker exec [-d] [-i] [-t] 容器名 [command] [args]
举例:docker exec -i -t test /bin/bash启动一个新的bash进程

停止容器

  • stop命令:给容器发送一个信号,等待容器的停止。
    docker stop 容器名
  • kill命令:直接停止一个容器
    docker kill 容器名

三.操作镜像

镜像存放在仓库(repository)中,而这个仓库存放在仓库(registory)中。
镜像由Repository和Tag唯一指定,比如ubuntu:14.04,ubuntu:latest,这里14.04和latest就是Tag,ubuntu就是Repository。如果没有指定Tag,则会使用默认的latest。

查看本地镜像列表

docker images [-a] [-f] [-q] [--no-trunc]

  • -a:--all,列出所有
  • -f:--filter,指定过滤器
  • -q:--quiet,只列出ID
  • --no-trunc:不截断ID
  • 可以使用Repository的名字作为参数,它会返回对应名字的所有镜像。

查看特定镜像信息

docker inspect 镜像仓库名+Tag名,或者镜像ID

删除镜像

docker rmi [-f] [--no-prune=false] 镜像仓库名+Tag名,或者镜像ID

  • -f:--force,强制删除。如果有容器在镜像基础上生成,必须用这个选项。
  • --no-prune:不要删除未打标签的父镜像。

如果一个镜像ID对应了多个镜像标签,那么使用Image ID才可以删除镜像,如果使用仓库名+标签,只能删除对应的标签。
如果想要删除镜像仓库下的多个镜像,可以用如下语法:
docker rmi $(docker images -q ubuntu)

在远程镜像仓库搜索镜像

docker search [options] 镜像仓库名

  • --automated=false:只显示自动构建的镜像
  • -s:--stars X:只显示不小于X星级的镜像

注意:search命令最多只能显示25个结果。搜索结果后,将返回镜像的信息(星级,是否官方,ID,标签...)

把镜像下载到本地

docker pull [options] NAME [:TAG]

  • -a:--all-tags=false|true,把所有打了标签的镜像都下载到本地。

把镜像推送到远程

docker push NAME
需要提供用户名,密码和邮箱。
Docker不会上传整个镜像,而只会上传修改的部分。
镜像默认是公共的,可以在Docker Hub转为私有。

构建镜像

镜像的构建非常重要。我们可以自定义一个容器,安装好自己需要的一些文件,然后构建成镜像以方便复用。

1.通过容器构建

docker commit [options] 容器名 [Repository[:TAG]]

  • -a:指定镜像的作者,一般是作者名和联系方式
  • -m:记录镜像构建的信息
  • -p:正常在构建镜像时会使容器暂停,使用-p告诉容器不要暂停

2.通过dockerfile文件来构建

首先要创建dockerfile文件,它是一种包含一系列命令的文本文件。
举例:

#First Dockerfile
FROM ubuntu:14.04
MAINTAINER RaidriarB "[email protected]"
RUN apt-get update
RUN apt-get install nginx
EXPOSE 80

然后执行build的命令来构建镜像。
docker build [options] path|url

  • -t:指定镜像的标签
  • 还有一些选项:--force-rm --no-cache --pull --quiet --rm
  • path要指定dockerfile的文件目录。

docker会在build的过程中,每一步都生成一个ID,这就是构建时的中间层镜像。如果使用ps命令查看,会发现他们的标签和仓库名都是none。如果想要取消构建中间层镜像,只需要使用--quiet或者-q选项。
dockerfile类似批处理文件,是一种非常强大的构建镜像方式。后面会详细介绍dockerfile的功能。

原文地址:https://www.cnblogs.com/RaidriarB/p/11616907.html

时间: 2024-10-08 17:53:36

Docker入门学习2 ——容器基本操作的相关文章

Docker入门学习1 ——概述

摘要:本文为Docker基本介绍.了解Docker的概念与组成,可以在命令的学习中更好地构建起体系,也可以与之前的知识融会贯通. 知识点:Docker用途 组成 原理,Docker容器简介 一.Docker入门介绍 Docker是什么? 简单来说,docker是一种比虚拟机更方便的虚拟化环境.有多方便?举个例子,以前想在Windows环境运行LAMP服务器,需要下载安装VMWare一类的虚拟机管理工具,再安装linux虚拟机,再安装LAMP环境:现在只要在docker中通过定制的镜像创建需要的容

Docker入门-学习笔记

这两天入门下Docker的容器技术,感觉挺实用的,所以记录下学习心得. Docker是什么? 要了解它是什么,第一步要做的是什么,还用问-,当然是先去官网瞧瞧啊.很明显啊,Docker is the leading Containers As a Service platform.英语不好,别怪我,还等啥,去翻译啊. 所以说Docker其实就是一个容器,容器能干啥,当然放东西喽,能放啥,你想放啥就放啥,任性没办法.记住这三个词:Build,Ship,Run(镜像,仓库,容器). 特点:跨平台,开

Docker 入门学习

初识docker docker在开发和运维中的优势: 1)更快速的交付和部署 2)更高效的资源利用 3)更轻松的迁移和扩展 4)更简单的更新管理 docker与虚拟机的比较 docker的核心概念和安装 docker镜像:镜像(image)是创建docker容器的基础,类似于虚拟机镜像,一个面向docker引擎的只读模板,包含了文件系统. docker容器:(container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用.可以看做一个简易版得到liux系统.可以对容器进行启动,

Docker学习总结(5)——超实用Docker入门学习教程

Docker是什么 Docker是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于iOS的APP形式的"应用",这个应用可以直接被分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行.Docker是一种最流行的容器化实现方案.和虚拟化技术类似,它极大的方便了应用服务的部署:又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包.使用Docker可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用,不过他们彼此之间共享同一个操作系统.Docke

Docker入门(二)基本操作

(一).容器的使用1.docker客户端命令.输入docker查看docker用法的语法和相关的命令. [[email protected] ~]# docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Options: --config string Location of client config files (default "/root/.docker") -D, --d

docker入门学习,有具体案例项目

一. 安装 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce -y systemctl start dockersystemctl enable docker二. 介绍: 工作目录:/var/lib/docker三

Docker学习(3) 容器基本操作

容器的基本操作 原文地址:https://www.cnblogs.com/xiao-xue-di/p/11244847.html

docker入门学习笔记

1 docker简介 基于LXC 的容器引擎 golang编写 核心组件:镜像,仓库,容器 1.1 container VS VMS http://www.cnblogs.com/wang_yb/p/3923040.html container基于kernel的cgroup和namespace container相比传统的虚拟机更为轻量(体积小,占用资源小),效率更高(创建.销毁速度快).性能好(kernel原生态支持) 传统虚拟机隔离比较彻底,安全性高 1.2 docker VS contai

【转】MYSQL入门学习之一:基本操作

转载地址:http://www.2cto.com/database/201212/173868.html 1.登录数据库    www.2cto.com 命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码) 描述:输入命令回车,即可输入密码了.密码验证通过即可进入数据库了. 2.查看数据状态 命令:show database; 描述:该命令会显示现存的所有数据库. 3.建立与删除数据库 命令:create database db; 描述:db可以