Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
系统结构
Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。
Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。
Docker通用场景
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker安装
系统要求:
内核大于:3.10
部署Docker
- 使用https方法安装CA证书
sudo apt-get update
sudo
apt-getinstall apt-transport-https ca-certificates
- 添加新的GPG密钥
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys58118E89F3A912897C070ADBF76221572C52609D
- 删除/etc/apt/sources.list.d/docker.list文件中的内容,修改为:
deb https://apt.dockerproject.org/repo ubuntu-trusty main
- 安装依赖软件包
sudo apt-get update
sudo
apt-get purgelxc-docker
sudo
apt-cachepolicydocker-engine
sudo
apt-get installlinux-image-extra-$(uname -r) linux-image-extra-virtual
- 安装Docker
sudo apt-get install docker-engine
- 启动Docker守护进程
sudo service docker start
- 查看Docker信息
sudo docker info
Docker的使用
我们需要先下载一个原始镜像,原始镜像一般为linxu内核精简版,很多命令都不支持。需要自行安装。
查找Docker ubuntu镜像
sudo docker search ubuntu
下载ubuntu 镜像至本地
sudo docker pull ubuntu
查看本地的镜像
sudo docker images
使用ubuntu镜像运行一个容器
sudo docker run -it ubuntu /bin/bash
我们发现这个ubuntu容器不支持vim。
在容器中安装vim工具
退出容器,提交更改
docker ps -l #查看当前运行的容器
docker commit 21e6 ubuntu-vim #提交容器更改,保存镜像名为:ubuntu-vim
再次查看本地Docker镜像
sudo docker images
已经存在了刚才提交的:ubuntu-vim镜像
使用ubuntu-vim运行容器
发现提交的更改已经生效。已经存在vim命令。
部分Docker常用命令
- docker卸载:sudo apt-get purge docker-engine
- docker升级:sudo apt-get upgrade docker-engine
- 查看本地镜像:docker images
- 查看docker版本:docker version
- 查找镜像:docker search tutorial
- 下载镜像:docker pull ubuntu
- docker中运行helloworld:docker run ubuntu echo "hello word"
- 保存对容器的修改:docker commit 698 ubuntu
- 发布镜像:docker push ubuntu
- 为镜像打上tag:docker tag test:latest s101070791/test:latest
- 删除镜像:docker rmi imageName
- 保存镜像到本地:docker save -o centOS.tar centos
- 加载本地镜像:docker load --input centOS.tar
- 停止容器:docker stop 707c
- 打开ssh通道:docker run -p 10022:22 -d sshd1:ubuntu /run.sh