Docker 基础操作(一)

Docker 安装及常用命令

建站不啰嗦,上手跟我做(二十二)Docker 使用

构建镜像

我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

Dockerfile

Dockerfile 文件格式如下:
##  Dockerfile文件格式

# This dockerfile uses the ubuntu image
# VERSION 2 - EDITION 1
# Author: docker_user
# Command format: Instruction [arguments / command] ..

# 1、第一行必须指定 基础镜像信息
FROM ubuntu

# 2、维护者信息
MAINTAINER docker_user docker_user@email.com

# 3、镜像操作指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

# 4、容器启动执行指令
CMD /usr/sbin/nginx

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

构建镜像

docker build 命令会根据 Dockerfile 文件及上下文构建新 Docker 镜像。
构建会在 Docker 后台守护进程(daemon)中执行,而不是 CLI 中。构建前,构建进程会将全部内容(递归)发送到守护进程。大多情况下,应该将一个空目录作为构建上下文环境,并将 Dockerfile 文件放在该目录下。
. 表示当前目录


Dockerfile 一般位于构建上下文的根目录下,也可以通过-f指定该文件的位置:
docker build -f /path/to/a/Dockerfile  .
构建时,还可以通过-t参数指定构建成镜像的仓库、标签。
docker build -t nginx/v3  .
如果存在多个仓库下,或使用多个镜像标签,就可以使用多个-t参数:
docker build -t nginx/v3:1.0.2 -t nginx/v3:latest  .

Dockerfile 构建镜像示例

定制 nginx 镜像
[root@localhost tmp]# mkdir mynginx
[root@localhost tmp]# cd mynginx
[root@localhost mynginx]# ls
[root@localhost mynginx]# vim Dockerfile
FROM nginx
RUN echo '<h1>Hello,nginx<h1>' > /usr/local/nginx/html/index.html
[root@localhost mynginx]# ls
Dockerfile
[root@localhost mynginx]# docker build -t nginx:v1 .
Sending build context to Docker daemon 2.048 kB
Step 1/2 : FROM nginx
Trying to pull repository docker.io/library/nginx ... 
Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout