基本概念
Docker 包括三个基本概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
理解了这三个概念,就理解了 Docker 的整个生命周期。
镜像(Image) 和容器(Container) 的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository)是一个集中存储,分发镜像的服务。分为公开服务和私有服务,最常使用的 Registry 公开服务是官方的 Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像。私有服务的话可以自行搭建。
安装
安装我这里就不作介绍了,直接安装官网方式进行安装就可以。地址
获取公开镜像
1 | docker pull ubuntu // 获取最新的 ubuntu 镜像 |
列出本地镜像
使用 docker images
命令,列表包含了仓库名、标签、镜像 ID、创建时间以及所占用的空间。1
2
3
4
5docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 40960efd7b8f 2 months ago 108MB
ubuntu 16.04 dd6f76d9cc90 2 months ago 122MB
alpine latest 053cde6e8953 2 months ago 3.97MB
运行
镜像下载完毕之后,我们可以将镜像启动生成一个容器,容器运行之后,将可以看到一个真正的 ubuntu
环境运行。1
docker run -it --rm ubuntu bash // 命令进入到 ubuntu 的 bash
Dockerfile 构建镜像
创建一个
demo
目录,在其目录下面创建Dockerfile
文件,在文件中输入:1
2
3
4
5
6
7
8
9
10
11
12
13FROM ubuntu
MAINTAINER XXX
RUN apt-get update && \
apt-get -y install nginx && \
echo "root:123456" | chpasswd
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
# FROM ubuntu 表示以 ubuntu 这个镜像为基准,在其基础上面构建其他的应用。
# RUN 后面就是执行的 `shell` 命令,为了避免构建多层镜像,这里只是一条命令。
# EXPOSE 80 开放 80 端口
# CMD 在容器中执行命令文件编辑完之后,在
Dockerfile
文件目录执行下面命令构建镜像。1
docker bulid -t ubuntu_nginx .
构建完之后,可以运行镜像生成容器。
1
2
3
4docker run -p 80:80 --name mynginx
-p 80:80:将容器的80端口映射到主机的80端口
--name mynginx:将容器命名为mynginx查看容器启动情况
1
docker ps
测试 nginx
可以打开浏览器对 nginx 服务器进行测试。
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
Happy Coding