Docker 系列学习之二:Docker基础命令

Docker 基本概念

  • 镜像(Image)

    Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

  • 容器(Container)

    镜像(Image) 和容器(Container) 的关系,就像是面向对象程序设计中的 “类”和“实例”一样,镜像是静态的定义,容器是镜像运行时的实体。多个容器在一个宿主机上运行时是相互隔离的,每个运行中的容器都有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。这有点像虚拟机,但是不一样,虚拟机是设备虚拟化,而容器是应用虚拟化。

  • 仓库(Registry)

    镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。Docker Hub 就是官方提供的镜像仓库,但是由于祖国伟大的墙,我们pushpull 镜像都十分痛苦,所以可以考虑搭建 私有 Docker Registry

基础命令

  • 查找镜像

    从镜像仓库中查找相关的镜像 : docker search [OPTIONS] TERM

    OPTIONS 属性 :

    -s :列出收藏数不小于指定值的镜像。
    
$  docker search -s 10 nginx 

Docker 系列学习之二:Docker基础命令_第1张图片

  • 拉取镜像

    我们需要拉取一个新镜像的时候,可以使用 docker pull 命令

$ docker pull nginx
  • 列出镜像

    当我们下载了很多镜像到本地的时候,我们想要知道都有那些,我们可以使用 docker images 命令

$ docker images
  • 删除镜像

    当我们不要想某个镜像的时候,我们可以使用 docker rmi 命令来删除, 加上参数 -f 是强制删除

$  docker rmi -f nginx
  • 创建镜像

    当我们像创建一个新镜像的时候,可以有两种方式:

    一种是 先拉取镜像,运行镜像,对镜像进行修改,然后 利用 使用docker commit 命令创建镜像

    可以使用的参数 : -a:提交的镜像作者; -m :提交时的说明文字;

$ docker commit  -a "作者" -m "说明文字" a404c6c174a2 nginx:v1
   另外一种方式就是使用 Dockerfile 创建镜像,先编写Dockerfile 文件,然后使用 docker build 命令创建镜像
# 使用当前目录的Dockerfile创建镜像。 -t 指定 tag
$ docker build -t nginx:v1 . 
  • 镜像标签

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

# 将镜像 nginx 标记为 runoob/nginx:v1 镜像。
$ docker tag nginx runoob/nginx:v1
  • 存出和载入镜像

    docker save: 将指定镜像保存成本地文件。

#将镜像 nginx:v1 生成mynginx.tar文档
$ docker save -o mynginx.tar runoob/nginx:v1
  • 载入导出的镜像文件;
 $ docker load  mynginx.tar
  • 发布镜像

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

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

# 上传本地镜像runoob/nginx:v1到镜像仓库中。
$ docker push runoob/nginx:v1
  • 创建容器

    docker create :创建一个新的容器但不启动它

#使用docker镜像nginx:latest创建一个容器,并将容器命名为myrunoob
$ docker create  --name myrunoob  nginx:latest 
  • 运行容器

    docker run :创建一个新的容器并运行一个命令

#使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
$ docker run --name mynginx -d nginx:latest

#使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
$docker run -P -d nginx:latest

#使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。
$docker run -p 80:80 -v /data:/data -d nginx:latest

#使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
$ docker run -it nginx:latest /bin/bash
  • 进入容器

    对于正运行于后台的容器,我们可以使用 docker exec 命令进入到容器中

    docker exec :在运行的容器中执行命令

# 进入到 mynginx 容器,并开启一个交互模式的终端
$ docker exec -it mynginx /bin/bash
  • 删除容器

    docker rm :删除一个或多少容器

# 强制删除容器 nginx1、nginx2
$ docker rm -f nginx1、nginx2

# 删除容器nginx01,并删除容器挂载的数据卷
$ docker rm -v nginx01
其他命令:

docker ps : 列出容器

docker ps -a:列出所有的容器信息;

docker ps -a | grep nginx ;过滤nginx 容器信息;

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

docker stop  容器ID; 停止一个运行中的容器

docker restart :重启容器

命令大全:

http://www.runoob.com/docker/docker-info-command.html

你可能感兴趣的:(docker)