一、思考
1.想搭建一个网站,如何做?
LNMP(Linux + Nginx + MySQL + PHP)
安装各种软件以及相关依赖环境
参数配置
写程序
功能测试
部署
2.网站想换位置,迁移至阿里云?
上述步骤需要重来一篇
数据迁移非常麻烦
环境不同步,配置繁琐
三、docker介绍
1.什么是容器?
来装东西
杯子,可以装水
饭盒,可以装饭菜
酒瓶,可以装酒
docker,也是容器,它是来web应用的
docker设计思想来自于集装箱
进行标准化
隔离(不同的应用之间,往往需要隔离)
如果把云计算当作大货柜,那么docker就相当如集装箱
2.什么是docker?
是一个让开发、测试、部署、运行应用程序更简单的工具
充分利用系统资源
大大提高工作效率
3.为什么使用docker?
开发:开发环境的配置
测试:测试环境的部署
运维:运维环境的搭建
线上部署:需要非常稳定的线上环境
全球知名机构,对各中大型公司使用docker的分析调查
4.docker vs vmware(or virtualbox)?
5.docker 架构
Docker Engine(C/S架构)
a server process(服务端)
a client cli(客户端)
a rest api interface
服务端与客户端使用restful api接口进行交互
Docker objects
Docker:假如类比为汽车
Dockerfile:相当如汽车的蓝图(图纸),用来创建image镜像
Docker image:类似于样版车,不是真正的车,不能够驾驶
Docker container:相当如在样版车上加入各种零部件进行组装,并且加满油之后,汽车就能够正常驾驶了
Docker Registry:类似于汽车4s店,可以免费获取docker image
Docker volume: 类似与油箱,汽车报废了,但油箱中的油还能使用
Docker Swarm:相当于,交通枢纽,控制多辆汽车的运行
Docker Hub(Docker Registry)
四、安装docker
1.在Windows中安装docker
官方安装教程:https://docs.docker.com/docker-for-windows/
2.在linux中安装docker
在Centos中安装docker:https://docs.docker.com/install/linux/docker-ce/centos/
在ubuntu中安装docker:https://docs.docker.com/install/linux/docker-ce/ubuntu/
3.在虚拟机中安装docker
在Windows中安装virtualbox虚拟机,在虚拟机中安装Centos,然后在Centos中安装docker
首先安装最新版的virtualbox
安装vagrant
在vagrant中下载并启动Centos7
4.在线练习docker
katacoda网站:https://www.katacoda.com/ 每10分钟一个小练习
Play with Docker网站:https://labs.play-with-docker.com/ 每次能使用4个小时
五、基本操作
1.docker image
# 先运行hello-world和centos容器docker run hello-worlddocker run -it centos /bin/bash
列出镜像
docker images
下载镜像
docker pull 镜像名(会从docker hub官方仓库中下载到本地)
docker run 镜像名(如果本地没有此镜像,将会先从docker hub官方仓库中拉去到本地,然后运行
删除镜像
sudo docker rmi 镜像id或者镜像名
docker rmi fce289e99eb9 或者 docker rmi hello-world
查看镜像详细信息
docker inspect 镜像名或者镜像id
2.docker container
运行容器
sudo docker run -it centos /bin/bash
列出容器
列出正在运行的容器 sudo docker ps
列出所有容器(包括关闭的) sudo docker ps -a
查看容器的进程和资源利用情况
sudo docker top 容器id和容器名
sudo docker stats 容器id和容器名
停止/开启容器
sudo docker stop 容器id和容器名
sudo docker start 容器id和容器名
暂停/启动容器
sudo docker pαuse 容器id和容器名
sudo docker unpαuse 容器id和容器名
删除容器
sudo docker rm 容器id和容器名
sudo docker rm -f 容器id和容器名