在 CentOS 7 上安装 Docker

本文介绍怎样在 CentOS 7 上安装和启动 Docker 守护进程,并在容器里运行一个简单的网站。

1、安装

运行以下命令安装 Docker:

$ yum install docker

查看 Dcoker 的版本:

$ docker --version
Docker version 1.13.1, build 07f3374/1.13.1

启动 Docker 服务,设置为自启动:

$ systemctl start docker && systemctl enable docker

2、新建 Docker 项目

为了简化例子,我们创建一个仅有一个 HTML 文件的 WEB 项目。

1)新建 html 文件

新建 index.html 文件:

$ mkdir docker-demo
$ cd docker-demo
$ mkdir html
$ echo '<h1>Hello Docker!</h1>' > html/index.html

2)新建 Dockerfile文件

在上一步新建的 docker-demo 目录中新建一个 Dockerfile 文件用于构建 Docker 镜像,内容如下:

FROM nginx
COPY html/* /usr/share/nginx/html

每个 Dockerfile 都以 FROM … 开头。FROM nginx 的意思是以 Nginx 官方提供的镜像为基础来构建我们的镜像。

在构建时,Docker 会从 Docker Hub 查找和下载需要的镜像。Docker Hub 对于 Docker 镜像的作用就像 GitHub 对于代码的作用一样,它是一个托管和共享镜像的服务。

使用过和构建的镜像都会被缓存在本地。

第二行是把本地 index.html 文件复制到镜像的 /usr/share/nginx/html 目录下。也就是 Nginx 寻找静态文件的目录。

3、构建镜像

在项目目录(本例为 docker-demo 目录)下执行构建命令:

$ docker build -t docker-demo:0.1 .

这行命令中的 docker-demo 可以理解为这个镜像对应的应用名或服务名,0.1 是标签。Docker 通过名称和标签的组合来标识镜像。

可以用下面的命令来看到刚刚创建的镜像:

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker-demo         0.1                 fd7d0841b148        4 hours ago         109 MB

ls 其实是仿 linux 命令,还有 rm 也是如此。

注意:这里 image 是不带 s 的,千万不要写成 images。

Docker images 是另外的命令,也可以用来列出本地镜像,但用法不同:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker-demo         0.1                 fd7d0841b148        4 hours ago         109 MB

4、运行容器

Docker run 命令用于运行容器:

$ docker run --name docker-demo -d -p 8080:80 docker-demo:0.1
  • –name 参数用于设置镜像的名称;

  • -d 是 –detach 的简称,用于在后台运行容器并打印容器ID;

  • -p 是 –publish 的简称,用于将本地端口映射到容易端口;

  • docker-demo:0.1 是镜像的名称和标签。

注意:有些参数需要参数值,紧接着在参数后面,如 –name docker-demo;有些参数不需要参数,如 -d

用下面的命令可以看到正在运行中的容器:

$ docker container ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
f63850c4d6dd        docker-demo:0.1     "nginx -g 'daemon ..."   14 seconds ago      Up 13 seconds       0.0.0.0:8080->80/tcp   docker-demo

这是可以使用 wget 命令查看服务是否正常启动:

$ wget http://localhost:8080
--2018-12-27 15:03:52--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1, ::1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23 [text/html]
Saving to: ‘index.html’

100%[======================================>] 23          --.-K/s   in 0s

2018-12-27 15:03:52 (5.17 MB/s) - ‘index.html’ saved [23/23]

如果服务器开放了 8080 端口,可以通过外网 IP 访问这个最简单的网站,比如 http://111.111.111.111:8080。然后你会在浏览器看到我们刚才创建的「Hello Docker!」页面。


前一篇:
后一篇:

发表评论