Docker安装:
Mac上安装Docker,请参照文档: Install Docker on macOS
Docker镜像:
Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。
image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。
下载镜像:
// pull images 镜像
docker pull ubuntu:18.04
// 根据镜像创建一个容器并运行,名称 ubuntu_nginx_php_docker
# -d 参数是让容器在后台运行
docker run -dit --name ubuntu_nginx_php_docker ubuntu:18.04
// 如上,容器已经新建完成,进入容器内部看看:
docker exec -it ubuntu_nginx_php_docker /bin/bash
查看镜像
$ docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS:
1. -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
2. --digests :显示镜像的摘要信息
3. -f|--filter :显示满足条件的镜像
* dangling=true :显示所有虚悬镜像
* sinse=php:7.2 :显示所有在php:7.2之后获取的镜像
* ...
4. --format :以指定格式显示列表
REPOSITORY:
要查看的镜像仓库源
TAG:
要查看的镜像tag,默认为latest
注意:容器即使停止了,容器依然是存在的,如果修改了dockerFile文件,想要使新配置生效,需要将容器删除
1. 如果容器中没有服务,即便使用了-d参数,启动后也会直接退出,所以容器必须有nginx、php-fpm这样的服务启动
2. 使用link参数可以使两个容器间使用link的值进行连接通信
Docker天然适合一个容器只运行一种服务,而这也是官方更推崇的。