Docker容器的基本使用

来源:互联网 发布:地大网络教育 编辑:程序博客网 时间:2024/06/05 09:06

Docker容器化技术极大提升了软件交付效率,本文讲述在Windows系统上Docker容器的基本使用。

Docker安装

Windows系统安装Docker Toolbox,安装完后,会有Docker Quickstart Terminal和Kitematic两个快捷方式。

Docker Quickstart Terminal会进入命令行终端,Kitematic是一个Docker的GUI工具,可以在图形界面管理Docker镜像。

常用的Docker命令

进入Docker Cli终端执行常用的Docker命令,实现容器的Build, Ship, Run功能。

# 下载镜像docker pull centosdocker 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镜像

普通应用要构建为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:alpineMAINTAINER Terry <2219569347@qq.com>WORKDIR /appCOPY package.json .RUN npm install --registry=https://registry.npm.taobao.orgCOPY . /appCMD ["npm","start"]

构建Docker镜像:

docker build -t yunterry/node-blog:latest .

构建完成后通过 docker images 可以看到该镜像。

Docker Hub镜像托管

Docker Hub可以免费托管和分享Docker镜像,类似于GitHub

把 node-blog 镜像push到Docker Hub:

# 登录Docker Hubdocker 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


扫一扫关注我的微信公众号