Docker 入门实践-利用Docker部署网站

410 阅读2分钟

1. Docker 简介

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。Docker 将你的开发环境、代码、配置文件等一并打包到这个容器中。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

Docker 包括三个基本概念:

  • 镜像(Image):镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
  • 容器(Container):容器是镜像创建的应用实例。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

2. 利用Docker构建web服务器

(1). 获取镜像

我们通过拉取镜像的方式构建一个 Web 服务器,访问 Docker Hub (hub.docker.com/) 搜索nginx。

现在,我们通过 docker pull nginx 拉取最新的 Nginx 的镜像。当然,我们也可以通过 docker pull nginx:latest 来操作。

我们可以使用 docker images 来查看本地镜像列表。

(2). 创建并运行容器

运行 docker run -d -p 8080:80 --name website nginx 命令来启动一个新的容器,其中:

  • -d:告诉 Docker 在后台运行容器的守护进程
  • --name website: 告诉 Docker 创建一个名称是 website 的容器
  • 8080:80: 告诉 Docker 8080 端口是对外开放的端口,80 端口是对外开放的端口映射到容器里的端口号 我们再通过 docker ps -a 来查看,发现容器已经在后台运行了,并对外开放 8080 端口。

通过浏览器访问 localhost:8080

其他常用命令:

  • docker stop CONTAINER ID/NAMES: 关闭容器
  • docker start CONTAINER ID/NAMES: 重新启动关闭的容器
  • docker rm -f $(docker ps -aq): 强制删除所有容器,包括正在运行的容器
  • docker exec -it CONTAINER ID/NAMES bash: 进入容器,exit可以退出容器

(3). 以挂载的方式启动容器

如图所示, 我们的网站代码存放在本机的 ~/Desktop/docker-project/website 下:

运行 docker run -d -p 8080:80 --name website2 -v $(pwd):/usr/share/nginx/html nginx, 将本机的 ~/Desktop/docker-project/website 挂载到容器中的 /usr/share/nginx/html下。 进入容器,我们会发现该文件夹下已经同步了所有的网站代码。

再次通过浏览器访问 localhost:8080,恭喜,这次浏览器可以成功显示我们自己的网站内容啦。