Docker入门

1.Docker简介

      Docker是2013年发起的一个项目,引述百度百科关于Docker的介绍[1]:“Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可以移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。”  

2.Docker架构

     Docker采用C/S(客户端/服务器)架构模式,架构图如下[1]:

Docker入门
图 2.1 容器架构图

                           

描述 说明 作用
Client Docker 客户端 通过docker指令使用远程Docker API。
docker machine Docker安装命令行工具 例如VirtualBox等。
Host 容器主机 物理或虚拟化的机器。
daemon 容器守护进程 在宿主后台运行,等待客户端的请求,并处理服务端接受到来自客户的请求。
images

Docker 镜像

创建 Docker 容器的模板。

container

Docker 容器

能独立运行的某个或一组应用。

Registry docker仓库 用来存放镜像,docker hub提供大量的镜像。用户可以在docker hub或阿里云创建私有仓库。

Docker简单工作流程简述如下:

1)Docker客户端通过docker pull指令从Registry仓库下载镜像;

2)Docker客户端通过docker create/docker build指令安装一个容器;

3)Docker客户端通过 docker start指令启动容器(或通过docker run指令创建并启动一个容器);

4)Docker客户端通过 docker stop指令停止容器;

5)Docker客户端通过 docker push指令将镜像保存到仓库。

3.Docker安装

Docker支持在Linux、windows和macOS上运行,安装教程详见官方文档:

Linux:https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1

windows:https://docs.docker.com/docker-for-windows/install/

MacOS:https://docs.docker.com/docker-for-mac/install/

4.Docker加速

 Docker在国内下载镜像会非常的慢,所以在安装好docker之后一般推荐大家设置docker加速。网上一大推介绍docker加速教程,现在以daocloud镜像加速为例设置镜像加速。

1) 如果您使用的是MacOS,那么打开docker客户端->Preferences->Daemon->Basic, 按下图输入daocloud镜像,点击"Appply & restart"。

Docker入门
图 4.1 MacOS配置docker加速

2)如果您用的是Linux系统,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

 {

    "registry-mirrors": ["https://www.daocloud.io/mirror"]

 }

    修改保存后重启 Docker 以使配置生效。

3)  如果您用的是windows系统,请参考:https://blog.****.net/slibra_L/article/details/77505003.

5. Docker使用

    假设您已经安装好docker,下面我们以安装node.js为例子简单聊聊docker的使用。

1) 查找镜像

首先要知道能安装什么样的镜像,例如想安装node.js,先到docker hub上查找镜像,在终端输入指令:docker search node.js

Docker入门
图 5.1  搜索镜像

2) 下载镜像

下载上图第一个node官方镜像。在终端输入指令:docker pull node

Docker入门
图 5.2  下载镜像

3) 查看本地的镜像

在终端输入:docker images , 看到node的最新版本已经下载下来了。

Docker入门
图 5.3  查看本地镜像

4)安装并启动容器:docker run --name mynode  -d  node

     容器命名为:mynode

5)  查看正在运行的容器: docker ps

6)停止容器: docker stop mynode

7)  启动/重启容器:docker  start/restart mynode

6. Docker 指令

 上面例子只是简单用到docker的几个指令,当然还有其他的指令,我们在终端输入docker -help ,屏幕输出指令如下:

Docker入门
图 6.1  docker指令

这些指令对于初学者来说还是比较陌生的,为了方便初学者快速理解这些指令,参考“Docker 命令大全”[2]将这些指令归纳为几类:

容器 生命周期 run 创建并启动容器
create 仅创建容器
start/restart 启动已被停止的容器/容器重启
pause/unpause 暂停容器/恢复容器
stop 停止容器
kill 杀掉运行中的容器
rm 删除容器
exec 在运行的容器中执行命令
容器操作 attach 连接到正在运行中的容器
events 监控服务器实时事件
export 导出容器
logs 查看容器的日志
inspect  获取容器/镜像的元数据
port 列出指定的容器的端口映射
ps 列出当前容器
top 查看容器中运行的进程信息
wait 阻塞运行直到容器停止,并打印出它的退出代码
容器rootfs命令 commit 从容器创建一个新的镜像
cp 拷贝容器与主机之间的数据
diff 检查容器里文件结构的更改信息
镜像 镜像仓库 login 登录镜像仓库
pull 从镜像仓库拉取镜像
push 往镜像仓库推送本地镜像
search 在镜像仓库搜索镜像
本地镜像管理 images 列出本地镜像
rmi 删除镜像
tag 给镜像打tag
build 通过 Dockerfile 创建镜像
history 查看镜像的创建历史
save 将镜像保存成 tar归档文件
import 从归档文件创建镜像
其他 docker系统信息 info 查看Docker系统信息
version 查看docker系统版本号

7.总结

本博客只是简单介绍了docker的入门知识,要深入掌握docker,还是需要自己多下功夫琢磨。好了,就写这么多吧,看完了就动手实践一下吧。

参考文献

1. Docker_百度百科: https://baike.baidu.com/item/Docker/13344470?fr=aladdin#1_2

2. Docker 命令大全:http://www.runoob.com/docker/docker-command-manual.html