0. docker简介:
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
1. docker 安装
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo groupadd docker
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
2. docker 常用命令:
pull 下载远端镜像到本地
push 推送本地镜像至远端仓库
stop/rm 停止/删除容器
rmi 删除本地镜像
docker build 制作镜像
3. docker能做什么?
a. 配置开发环境。
相信大家都遇到过,每次来新人。或者迁移开发环境的时候,我们都需要重新部署开发环境。
一般linux开发环境,只仅仅需要编译环境+vim配置+常用软件安装。(第三方依赖也可以放在docker中
简单示例:
新建文件dockerfile
From debian:latest
MAINTAINER Saber "fatestaymq2@foxmail.com"
RUN apt-get update && \
apt-get install -y zip curl vim sudo net-tools lrzsz build-essential ssh psmisc
运行命令:
docker build -t sabermqd/env:latest .
制作完后。只需要docker pull获取镜像。
比如我们开发go服务。
那么只需要:
docker run -v $PWD:/* -w /go/src/* sabermqd/goenv:latest go build && ./*
附本人的dockerhub: https://hub.docker.com/r/sabermqd/env/
不同语言的VIM配置,也可以写到docker中制作镜像。 dockerhub的网速较慢。可以自己搭建本地仓库。
b. 保证开发环境和线上环境一致。
这个不用多说。 一般会配合swarm或者k8s使用。
c. 隔离应用,整合服务。
有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。
我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务。
即微服务。 docker技术给微服务带来了很大的便利。