1. Docker
Docker 是开源的应用容器引擎,为任何应用创建一个轻量级的、可移植的、自给自足的容器。
可用于web应用的自动化打包和发布,自动化测试和持续集成。
Docker 使用C/S架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。
Docker是开源的,遵从Apache2.0协议,源代码托管在 Github 上。
2.Docker与虚拟机比较
Docker是在操作系统上复用实现虚拟化,VM是在硬件的基础上虚拟出多个操作系统,所以Docker资源占用少,启动快,项目的部署和运维方便。
3.Ubuntu 中安装 Docker
安装环境:ubuntu 16.04 LTS ,安装步骤可以查看官方帮助。
sudo apt-get install docker-engine
启动Docker服务
systemctl start docker 或 service docker start
client是Docker命令行程序,用于和server交互。
server是Docker服务端,包含docker引擎。
接下来运行hello-world,验证Docker安装成功
docker run hello-world
4.下载使用ubuntu镜像
docker pull ubuntu
查看已经下载到本地镜像,当镜像有更新时docker在run时会自动拉取新的镜像
#运行ubuntu镜像
# docker run <相关参数> <镜像 ID> <初始命令> # -i:表示以“交互模式”运行容器 -d 使容器后台运行 # -t:表示容器启动后会进入其命令行 # -v:表示需要将本地目录挂载到容器中, # 格式:-v <宿主机目录>:<容器目录> docker run -it -v /data:/data ubuntu bash
可以看到已经进入ubuntu bash,并且本地目录已挂载到容器中,文件也能访问,然后可以在容器中安装tomcat等
exit 退出镜像
#自己构建镜像(把有修改的container提交成新的Image)
删除镜像
#使用Docker运行web Aplication
docker run -d -p 80:5000 training/webapp python app.py
其中-p 80:5000 是将容器内5000端口映射到本地80端口,此时用浏览器访问localhost:80 即可看到web应用在运行了:)
4.Docker Hub
Docker Hub 是Docker的镜像仓库,可以通过注册账号,上传我们自己的镜像,共享给他人使用或在其他机器下载使用。
Docker Hub同时还提供了自动构建功能,可以自动拉取Github代码并配置Webhook,下次再研究
docker login 登录
docker search centos 查找镜像,结果中前面有/的表示发布自个人的公共镜像
docker push yourname/newimage 推送你的镜像
docker logout 退出登录
5.其他命令
docker --help 显示帮助
docker info 显示docker状态信息
docker version 显示版本信息
docker ps 列出运行中容器
docker ps -a 查看所有容器 -l查看最近容器 -q 只显示容器的ID
docker run -d -P --name iamname training/webapp python app.py -P 缺省端口 --name 自定义容器名字且必须唯一,如果不指定就会随机生成一个
docker stop XX 停止XX容器
docker rm XXname 移除容器
docker inspect name 显示容器详细
docker exec -it db bash 打开一个运行中容器的shell
docker rm `docker ps -a -q` 删除所有容器 注意是 (`) 不是 (')
docker network ls 显示docker网络驱动 ,启动容器时默认使用bridge(桥接网络)
docker network inspect bridge 查看容器的IP地址
docker network create -d bridge my-bridge-network 自定义桥接网络
docker run -d --network=my-bridge-network --name db training/postgres 启动时指定网络驱动
docker network connect my-bridge-network cname 将cname容器附加在某网络上,,---------------- 同一网络下的容器可以相互ping通