一、什么是docker
docker官网: https://www.docker.com
docker中文社区: http://www.docker.org.cn
1. 什么是docker
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
2. docker 和 virtual machine 对比
- 容器: 容器是应用程序层的抽象,它将代码和依赖项打包在一起。多个容器可以在同一台机器上运行,并与其他容器共享OS内核,每个容器在用户空间中作为独立进程运行。容器占用的空间比VM小(容器映像通常是几十个MBS的大小),可以处理更多的应用程序,并且需要更少的VM和操作系统。
- 虚拟机: 虚拟机(VM)是物理硬件的抽象,将一台服务器转换为多台服务器。系统管理程序允许多个VM在一台机器上运行。每个VM包含操作系统、应用程序、必要的二进制文件和库的完整副本-占用数十个GBs。VMS的启动速度也很慢。
二、docker for CentOS
https://docs.docker.com/install/
安装docker https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository
# 1
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 3 安装docker-ce
yum install docker-ce docker-ce-cli containerd.io
# 4 查看版本
docker -v
# 5 运行 hello-world
docker run hello-world
三、以安装mongodb镜像为例
dockerhub mongo 网址: https://hub.docker.com/_/mongo
1. 启动docker
systemctl start docker
2. 拉取镜像
docker pull mongo
3. 运行mongo
docker run --name mymongo -d mongo:latest
一般我们用 -p 绑定主机和容器的端口映射
docker run --name mymongo -d -p 27017:27017 mongo:latest
将数据保存在宿主机上,宿主机数据目录 /data/mongodb ,容器数据目录 /data/db
docker run --name mymongo -d -p 27017:27017 -v /data/mongodb:/data/db mongo:latest
4. 进入容器
docker exec -it mymongo bash