Docker实践
Docker 安装
Windows系统安装,其他系统在同一页面自己寻找安装方式
Docker 镜像
显示本地镜像
1 | root@root:~$ docker images |
获取镜像
1 | root@root:~$ docker pull <镜像名> |
查找镜像
1 | root@root:~$ docker search <镜像名> |
更新镜像
更新前需先使用该镜像创建一个容器
1 | root@root:~$ docker commit -m="<描述信息>" -a="<作者>" <容器唯一ID> <镜像名> |
构建镜像
需要创建Dockerfile文件,文件中包含一组指令,指令格式如下
1 | FROM centos:6.7 |
1 | root@root:~$ docker build -t <目标镜像名> <Dockerfile所在目录> |
设置镜像标签
1 | root@root:~$ docker tag <镜像ID> <用户名称/镜像源名:标签> |
删除本地镜像
1 | root@root:~$ docker rmi <镜像名/镜像ID> |
Docker 容器
运行容器
1 | root@root:~$ docker run <镜像名> <执行命令> |
-t:在新容器中指定一个伪终端或终端
-i:允许你对容器内的标准输入(STDIN)进行交互
1 | root@root:~$ docker run -i -t ubuntu:15.10 /bin/bash |
此时进入ubuntu的终端
通过exit或CTRL+D退出容器
-d:以进程方式运行的容器
1 | root@root:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done |
运行结束返回一串长字符,是对应每个容器的唯一容器ID
查看正在运行的容器
1 | root@root:~$ docker ps |
-a:显示包括已停止的容器
查看标准输出
1 | root@root:~$ docker logs <容器ID或容器名称> |
-f:显示实时输出
停止/开启/重启容器
1 | root@root:~$ docker stop <容器ID> |
可能会出现的问题
时区问题
基于centos 的镜像,系统时区是由/etc/localtime 控制
基于debian 的镜像,系统时区由/etc/timezone 控制
可将系统内的/usr/share/zoneinfo/Asia/Shanghai 文件直接复制到以上位置修改时区
基于centos 镜像内,只修改/etc/localtime ,tomcat 取的仍然是UTC 时区,可配置catalina 启动文件的JAVA_OPTS参数,修正tomcat的时区
1 | root@root:~$ docker ... -e JAVA_OPTS="-Duser.timezone=GMT+08" ... |
在IntelliJ IDEA 中添加Docker扩展
下载Docker插件
直接在IntelliJ中的插件管理器中下载课鞥会下载出错,建议官网下载(选择适合自己IDEA的版本),选择导入本地插件,导入即可,重启IntelliJ
连接Docker
需要电脑中已经安装Docker并运行,IntelliJ打开Settings/Preferences,选择Build,Execution,Deployment,然后选择Docker,点击➕即可连接到本地Docker
浏览镜像和容器
点击工具栏中的Docker,选择Docker节点,点击运行可以查看Docker中的Containers(容器)和Images(镜像)
运行容器
可在已有的镜像上右键选择Create container创建容器,在弹出窗口配置完成后创建即可
更多详细操作
更多详细操作见插件官方文档