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,恭喜,这次浏览器可以成功显示我们自己的网站内容啦。