注意

很多操作原理和VMware或者KVM等等虚拟机是一致的

  1. 未运行的 docker 默认不显示,需要采用 -a 选项来显示
  2. 建立的image一般都是基于base image一层一层建立的
  3. 可采用与github 同步 dokefile 实行 自动构建image
  4. 系统类image 创建以后软件很少,需要自己安装(记得先升级)
  5. 没有vim等
  6. 端口映射方式为 本地port:docker-port ,映射为localhostPort:port

    不使用映射时,默认分配 到指定ip段

  7. 不加 -t tty 命令,是无法从命令行接入container

    可在 dockerfile 中查看 Cmd 参数验证(dameon off) 可用 inspect 查看(inspect 本质上也是修改linux配置)

  8. Docker push 时,一定要让本地镜像的名字 为 仓库名/自起名字:tag

    如果不指定tag默认推送所有同名版本

  9. 不要使用非官方的image(里面可能有病毒或者其他内容)
  10. docker login 的username为userid 不为 邮箱
  11. 默认退出,后台继续运行,ctrl+q , ctrl+p
  12. 修改docker全局配置时,一个已经创建的容器可能并不会立刻刷新该配置,需要手动刷新 因为docker的全局配置也是通过shell加载到container中,本质上类比dockerfile
  13. docker volume 挂载不上去可能是因为 外部设置全局设置了 File sharing,(设置映射时,最好指定绝对路径)
  14. 创建是指定多条命令使用 空格 隔开 ,一条命令使用 \ 转义 例 :/etc/init.d/ssh\ start
  15. dockerfile 的build 制作 ,可以断点继续,并且可以实修改自动忽略未改变的
  16. ssh 连接 端口 一定要用 -p 指定 ,放在前面
  17. 有些时候解决不了,重启docker,去掉端口占用试一试(删除不干净)
  18. --link后面跟的mysql:mysql,前面一个mysql为启动的mysql容器的名称(--name=mysql),后面的为添加的别名,用于tomcat配置链接地址。

mac 上 实现 容器间互联是在 本地回环接口上实现的,外网不可访问,内网之间可以通过分配ip访问 也可以使用辅助容器之间进行连接 有些容器如果需要一直运行 一定要有一个主线程保持 mysql 5.7 是个坑

容器后台运行

  • 方案一 -d <image_name> tail -f /dev/null

  • 方案二

docker run -i -t <image_name> [command]