Docker 实践
Docker 是什么
Docker 是一个开源的应用容器引擎,基于 Go 语言开发。
我们用的传统虚拟机如 VMware
, VisualBox
之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
而容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。
相比于虚拟机,通过Docker实现的虚拟化更加轻量级、需要的资源更少、更快、更灵活。
实验环境
Ubuntu 18.04.2
docker-ce 19.03.5
实验内容
- 安装Docker
- Docker基本操作
- MySQL与容器化
安装Docker
官方指南Get Docker Engine - Community for Ubuntu
中文指南Ubuntu Docker 安装
安装完以后运行docker version
注意:以下操作需要在root用户下操作
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是中科大的镜像地址。读者可以参考这篇文章Ubuntu Linux下修改docker镜像源
运行镜像hello-world
docker run hello-world
Docker基本操作
注意:以下操作需要在root用户下操作
显示本地镜像库内容
docker images
获得帮助
docker --help
显示运行中容器
docker ps
显示所有容器(包含已中止)
docker ps -a
MySQL与容器化
拉取 MySQL 镜像
docker pull mysql:5.7
使用MySQL容器
docker run -p 3336:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
创建 MySQL 数据库的客户端容器
docker run -it --name mysqlclient --link mysql2:mysql mysql:5.7 bash