Docker容器化技术极大提升了软件交付效率,本文讲述在Windows系统上Docker容器的基本使用。
Windows系统安装Docker Toolbox,安装完后,会有Docker Quickstart Terminal和Kitematic两个快捷方式。
Docker Quickstart Terminal会进入命令行终端,Kitematic是一个Docker的GUI工具,可以在图形界面管理Docker镜像。
进入Docker Cli终端执行常用的Docker命令,实现容器的Build, Ship, Run功能。
# 下载镜像
docker pull centos
docker images
docker images 查看本地镜像列表:
也可以在Kitematic中查看Docker镜像:
# 运行一个Docker实例
docker run -d -p 9000:80 nginx
# 查看运行的实例
docker ps
# 进入容器内bash终端
docker exec -it badd967af535 bash
# 关闭Docker实例
docker stop badd967af535
# 关闭所有实例
docker stop $(docker ps -q)
# 删除Docker镜像
docker rmi a47a5669ac57
普通应用要构建为Docker镜像,需要一个Dockerfile文件,它是构建镜像的脚本文件,然后使用docker build 命令构建镜像。
例如用Node.js搭建个人博客,然后构建成名为 node-blog 的镜像:
npm的package.json配置:
{
"name": "node-blog",
"version": "1.0.0",
"main": "app.js",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "~4.15.2"
},
"keywords": [
"Node.js",
"Docker"
],
"author": "Terry"
}
只开启一个静态网页服务,应用主体app.js只有几行代码:
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public/'));
app.listen(3000);
编写Dockerfile文件:
FROM node:alpine
MAINTAINER Terry <2219569347@qq.com>
WORKDIR /app
COPY package.json .
RUN npm install --registry=https://registry.npm.taobao.org
COPY . /app
CMD ["npm","start"]
构建Docker镜像:
docker build -t yunterry/node-blog:latest .
构建完成后通过 docker images 可以看到该镜像。
Docker Hub可以免费托管和分享Docker镜像,类似于GitHub
把 node-blog 镜像push到Docker Hub:
# 登录Docker Hub
docker login
# 上传镜像
docker push yunterry/node-blog
然后在Docker Hub官网就可以搜到该镜像:
https://hub.docker.com/r/yunterry/node-blog
可以发现Docker镜像仓库的设计思想与git如出一辙,使用方法也基本类似。
Docker的好处是不担心运行环境的变化,保证运行效果一致性,在另一台主机上运行博客镜像:
# 从远程仓库下载镜像
docker pull yunterry/node-blog
# 运行node-blog镜像
docker run -d -p 5230:3000 yunterry/node-blog
该镜像在容器内启动的是3000端口,映射到容器外5230端口。
浏览器打开 http://192.168.99.100:5230
示例代码:https://coding.net/u/yunm/p/node-blog
扫一扫关注我的微信公众号