Docker
什么是Docker?
Docker
是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
——来源搜狗百科
简单来说Docker是一种方便的集成工具,它可以将软件及软件的运行环境打包到一起,然后实现类似Java一样的跨平台运行的效果,十分方便,不用考虑环境配置带来的一系列问题。
优点:
- 轻量化,不用配置整个环境
- 方便,环境与软件一起打包,打开即用
- 隔离,各个Docker之间不会互相影响
Docker实践操作
Docker的安装
由于我已经完成了整个实验,所以我这里的Docker是安装好了的,如果没有安装Docker的用户可以按照以下步骤进行操作(以CentOS 7为例):
sudo yum update
更新yum为最新
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装先行依赖
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
配置软件源
sudo yum install docker-ce docker-ce-cli containerd.io
安装最新版本(你也可以自行指定版本)
sudo systemctl start docker
启动docker
我们运行hello world镜像来观察是否成功安装
sudo docker run hello-world
Docker运行Ubuntu Bash
需要注意的是由于防火长城的存在,我们最好先配置一下镜像,不然Docker的下载会十分慢
Docker基本操作
Docker获取本地镜像
docker images
Docker获得帮助
docker --help
Docker显示运行中的容器
docker ps
Docker显示所有容器(包含已终止)
docker ps -a
继续运行原容器
docker restart interesting_swanson
docker ps
docker attach interesting_swanson
构建镜像并运行
MySQL与容器化
docker pull mysql:5.7
mkdir mydock && cd mydock
vi dockerfile
启动mysql并运行
sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -P3306 -uroot -proot
查看数据库文件的存储
docker exec -it mysql2 bash
查看卷
创建卷并加载
docker rm $(docker ps -a -q) -f -v
docker volume create mydb
docker run --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v mydb:/var/lib/mysql -d mysql:5.7
docker run --name myclient --link mysql2:mysql -it mysql:5.7 bash
docker网络
配置支持网络的Ubuntu Bash
docker info
docker inspect
查看日志输出
图形管理工具