文章目录
- Docker简介
- 镜像
- 容器
- 仓库
- 阿里云仓库
- 数据卷
- 案例
- 构建镜像
Docker简介
- 2013诞生
- 官网:https://www.docker.com
- 仓库:https://hub.docker.com
- 虚拟化和
docker
的区别?
- 少个虚拟管理软件
docker
的优势?
- 可以直接使用主机操作系统的资源进行虚拟化。
- 秒级启动应用。
- 对服务器的资源利用率更高。
- 安装
docker
- 官方建议
Ubuntu
镜像
- 获取镜像帮助
docker pull --help
- 获取镜像加速器
阿里云:https://cr.console.aliyun.com/cn-hangzhou/mirrors
网 易:http://hub-mirror.c.163.com
- 查看本地镜像列表
docker images
- 删除镜像
docker rmi 镜像ID
-f
是强制删除,如果有正在运行的容器使用了该镜像,那么该镜像是不会真正的删除
- 搜索镜像
docker search redis
容器
- 理解容器概念
容器就是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。
一个容器只能运行一个镜像 - 查看容器列表
docker ps
- 创建容器
dcoker create --help
**example:**创建一个redis容器
docker create -p 16379:6379 --name redis redis:3.0
- 启动容器
docker start --help
- 创建并运用容器
docker run --help
example: 创建一个redis容器
docker run -p 16380:6379 --name redis2 redis:3.0
如需在后台运行, 需要加上-d
docker run -p 16381:6379 -d --name redis3 redis:3.0
- 停止容器
docker stop # 容器id或者容器名称
docker kill # 容器id或者容器名称
- 删除容器
docker rm --help
- 进入容器
docker exec --help
- 退出容器
crtl+D
- 查看日志
docker logs -f 容器名或id
仓库
- 仓库是什么?
仓库是集中存放镜像的地方。
阿里云仓库
- 登录阿里云
Docker Registry
sudo docker login --username=1763738 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在产品控制台首页修改登录密码。
- 从
Registry
中拉取镜像
sudo docker pull registry.cn-hangzhou.aliyuncs.com/test-20181204/myredis20181204:[镜像版本号]
- 将镜像推送到
Registry
sudo docker login --username=17637632238 registry.cn-hangzhou.aliyuncs.com
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/test-20181204/myredis20181204:[镜像版本号]
sudo docker push registry.cn-hangzhou.aliyuncs.com/test-20181204/myredis20181204:[镜像版本号]
容器在运行项目时会产生数据,比如运行的mysql容器,那么一定会有数据产生,那么是将数据保存在内部还是外部?
如果将数据保存在内部,意味着我们改变了原有的镜像。这种做法不可取,会让后期的容器升级变得不可能了。运行的镜像最好不好改变,如果必须改变(比如修改配置文件),在改变后记得commit
提交打成一个新的对象。
显然,数据应该存储在容器的外部,就是说保存在主机上。那么,数据保存在主机上,那么容器该如何读取主机中的数据呢?
数据卷
在create
和run
容器时,可以通过 -v
参数指定主机的目录。挂载到容器的某一个目录上。这样,容器就在这个目录读写数据可。从而实现了目录的分离。
案例
运行mysql(percona)
容器,将mysql的数据放到主机/data/mysql-data
中。
- 下载镜像
docker pull percona:5.6
- 创建容器
docker create --name percona -v /Users/dongsun/works/mysql-data:/var/lib/mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.6
- 启动容器
docker start percona
构建镜像
构建镜像通过编写 Dockerfiler
配置文件完成