学习网址

https://git.oschina.net/yangllsdev/docker-training
https://docs.docker.com/engine/installation/linux/centos/

docker 基本概念

什么是docker

docker是一个开源的容器技术(lxc)解决方案
效果: 在一台物理机上可以模拟多个操作系统的效果
docker是运行在os上的一个app,将硬件做了逻辑隔离,但是大部分操作系统堆栈都是直接使用的宿主机的

优缺点

优点: 部署快,启动快 --- 秒级
缺点: 不是一个完整的操作系统堆栈,部分功能受限制

docker 使用场景

docker 组成部分

docker client
docker server == docker daemon 的重要组成部分
docker image ---> docker container
docker registry === docker container 的存储仓库

使用方法

编写Dockerfile

FROM
MAINTAINER
ENV
ADD COPY
RUN
EXPOSE
VOLUME # 在docker run -v 使用的时候映射
ENTRYPOINT CMD # 都是在docker run 的时候执行, cmd 可以直接覆盖, entraypoint 要加参数 e.g. --entrypoint /bin/bash
ONBUILD

cmd

使用dockerfile --> docker image
docker build -t registry_url/namespace/centos:7.1 /dockerfile/path
docker images # 查看本地的docker image docker image --> docker container
docker help run
docker run
-it # 交互式的启动
-d # 后台启动,成功后返回container id 一个很长的字符串
-p 22 # 大写P 重启后,前端映射端口会改变
-P 2222:22 # 小写p 只有本container 删除后,前端映射端口才会改变
-e WORDPRESS_DB_USER=admin # set environment variable
docker run -d -p 2222:22 --name base(container name) namespace/centos:7.1
docker run -d # background
docker ps -a # 查看本地当前所有的container 进入交互式的模式
docker exec -it website(container name) /bin/bash
supervisorctl # 查看当前容器运行的服务
exit container:
docker ps -a # show all container info
docker run # create a container
docker start container_name # start container
docker stop container_name # stop container
docker rm -f container_name # delete a container -f can release up status container image:
docker images # show all images info
docker rmi image_id

磁盘映射

效果: 删除docker container , 数据不会删除
场景: 数据库文件 /var/lib/mysql/
方法:
run 参数 -v
docker run -d -p 3306:3306 -v host_dir:container_dir --name container_name image

registry

分类

private registry  server
mirror registry server
sponsor / vendor registry server # 企业私有的,但是docker 公司协助管理 registry server v2 & registry server v1
go 语言替代了 python
上传下载快
内嵌webhook通知系统, 系统状态检查

最新文章

  1. iOS开发系列--Swift语言
  2. java中重载与重写的区别
  3. ORACLE数据库用户账号处于expired状态如何处理
  4. [Angular2 Form] Create Radio Buttons for Angular 2 Forms
  5. mysql5.5主从配置
  6. android ListView和GridView拖拽移位具体实现及拓展
  7. JAVA单线程以及java多线程的实现方式
  8. CodeForces 687A NP-Hard Problem(二分图判定)
  9. java 使用Stack来判断Valid Parentheses
  10. 智能合约语言 Solidity 教程系列5 - 数组介绍
  11. RDD:基于内存的集群计算容错抽象
  12. MediatR 知多少
  13. 我的第一个python web开发框架(40)——后台日志与异常处理
  14. JAVA -数据类型与表达式---变量与赋值
  15. setup FTP server on CentOS 7
  16. Dockerfile详解及优化
  17. 个人项目:Java实现WC
  18. vuex实现原理
  19. Mac 安装HTMLTestRunner模块
  20. Kattis之旅——Eight Queens

热门文章

  1. 使用ResXmanager实现多语言[转]
  2. 风变编程笔记(一)-Python基础语法
  3. HTTP 协议的 8 种请求类型介绍
  4. 1080 Graduate Admission
  5. main中的argv和argc
  6. python Threading模块源码解析
  7. zabbix4.4.2安装部署
  8. Docker最全教程——从理论到实战(十三)
  9. 初识消息队列--ActiveMq
  10. 修改json数据中key(键值)