Docker之容器和镜像

3次阅读

共计 1722 个字符,预计需要花费 5 分钟才能阅读完成。

1. Docker 是什么?

1.1 Docker 简介

Docker 是一个能把开发的应用程序自动部署到容器的开源引擎。

1.2 Docker 组件
  • Docker 引擎(Docker 的客户端和服务器)
  • Docker 镜像
  • Registry
  • Docker 容器
1.3 Docker 的安装

Docker 可以部署在 Ubuntu、Centos 等宿主机中。在 Centos7 中使用以下命令安装:

# 安装 Docker,- y 参数表示 answer yes for all questions,
sudo yum install -y docker
#启动 Docker
sudo systemctl start docker
#查看 docker 是否运行正常
docker info

2.Docker 镜像

2.1 什么是 Docker 镜像?

Docker 镜像是由文件系统叠加而成的。

2.2 列出镜像
# 列出全部镜像
docker images

#列出指定的镜像
docker images 镜像名称 
2.3 拉取镜像

拉取镜像时会先在本地查找,如果本地没有,就会去 Docker Hub 下载该镜像。Docker Hub 具有两种类型的仓库,一种是用户仓库,由 Docker 用户创建;另一种是顶层仓库,由 Docker 内部人员管理。

# 例如:docker pull fedora:20
docker pull 镜像名称: 标签 
2.4 查找镜像
# 查找 Docker Hub 上的公共可用镜像
docker search 镜像名称 
2.5 创建镜像

(1) 使用 docker commit 命令

#docker commit 提交的是创建容器的镜像与容器当前状态之间的差别。docker commit 容器 ID 用户名 / 仓库名 

(2) 使用 Dockerfile 创建

https://segmentfault.com/a/11…

删除镜像
docker rm 镜像名称 
3. Docker 容器
3.1 创建容器

在创建一个容器时,docker 会构建出一个镜像栈,在栈的最顶端添加一个读写层。这个读写层再加上其下面的镜像层以及一些配置数据,就构成了一个容器。

a. 创建交互式容器

#-i:保证容器的 STDIN 是开启的。#-t:表示 docker 会为创建的容器开启一个伪 tty 终端。#ubuntu:以 ubuntu 为基础镜像构建新的镜像。docker 会先检查本地是否存在 ubuntu 镜像,如果不存在就到 Docker Hub Registry 找。#--name 指定容器的名称,如果不指定,docker 会随机生成一个名字。#/bin/bash:容器创建完成之后,会执行 /bin/bash 命令。docker run -t -i --name container_name ubuntu /bin/bash

b. 创建长期运行的容器

#-d:docker 会把容器放到后台运行。docker run -d --name container_name ubuntu
3.2 查看容器
# 列出正在运行的容器
docker ps

#列出最后一个运行的容器
docker ps -l

#列出全部容器 5
docker ps -a

#返回指定容器的配置信息
docker inspect 容器名称 
3.3 重启容器

容器重新启动的时候会按照 docker run 的命令的参数运行。另外,使用 docker restart 命令可以重新启动一个容器。使用 docker create 命令可以创建一个容器但是不运行。

# 指定容器名称重启容器
docker start 容器名称

#指定容器 ID 重启容器
docker start 容器 ID
3.4 附着在容器上
# 附着到指定容器 ID 的容器上
docker attach 容器 ID

#附着到指定容器名称的容器上
docker attach 容器名称 
3.5 查看日志
# 查看指定容器的日志
docker logs 容器名称

#跟踪指定容器的日志
docker logs -f 容器名称

#列出指定容器的日志的最后 10 行
docker logs --tail 10 容器名称

#
docker logs --tail 0 -f 容器名称

#容器的日志加上时间戳
docker logs -t 容器名称

#将日志输出重定向到 syslog。docker run --log-driver="syslog" --name 容器名称 -d ubuntu
3.6 删除容器
# 删除指定容器
docker rm 容器 ID

3. 参考材料

Docker 中文教程

《第一本 Docker 书》

正文完
 0