在本次实验的目的是学习构建自己的镜像。
使用 Commit 方法建立镜像
- 启动一个容器
1 | docker run -t -i alpine /bin/sh |
- 在容器中安装nginx
在容器中执行:
1 | apk --update add nginx |
- 使用 commit 建立进行
现在我们已经在容器中安装了nginx, 如果想要重用这套环境就可以把它存为镜像,使用 commit 命令来完成这个操作:
commit命令的格式为:
1 | docker commit <容器id> <镜像名称>[:标签] |
在案例中,假设将要保存的镜像命名为: ubuntu-nginx, 则命令依次为:
查看容器id
1 | docker ps -a |
系统显示:
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
这里,”9d8e45d95d98” 就是我们后面命令要用到的容器id
在执行 commit 命令:
1 | docker commit 9d8e45d95d98 alpine-nginx:1.0 |
再执行 images 命令,就可以看到新建的这个镜像了。
1 | docker images |
系统显示
1 | REPOSITORY TAG IMAGE ID CREATED SIZE |
使用 Dockerfile 建立镜像
- 新建一个 Dockerfile 文件,加入一下内容:
1 | FROM alpine:3.8 |
- 运行 build 命令构建镜像
build 命令的格式如下:
1 | docker build -t=“<镜像名>[:标签]” |
假设要构建的镜像名为: “alpine-bash”,则命令为:
1 | docker build -t="alpine-bash:1.0" . |
注意,不要忘记最后的点号
用 Dockerfile 构建包含nginx的alpine镜像
如果用 Dockerfile 来构建一个包含nginx的docker镜像,则可以按如下步骤构建:
- 新建一个 Dockerfile 文件
文件内容如下:
1 | FROM alpine:latest |
- 执行 build 命令构建
1 | docker build -t="alpine-nginx:1.0" . |
- 运行 alpine-nginx
执行以下命令:
1 | docker run --name nginx-srv -d -p 80:80 alpine-nginx:1.0 |
然后就可以使用浏览器访问该nginx服务器了。