总字数 645
预计阅读时间 2 分钟
与宿主机共享网络
默认情况下 , 在宿主机可以根据容器暴露出的端口来访问容器中启动的服务
但是由于容器的隔离 , 在容器内部是无法访问宿主机的服务的
如果有这种需要 , 可以在启动容器的时候添加参数--net=host
作用就是使容器和宿主机共用网络
镜像的备份与恢复
docker的一个重要目标就是方便实现迁移
对于一个镜像 , 也可以打包出来作为备份 , 或者迁移到其他机器上
对于镜像的导出与导入操作 , 使用的是save
和load
1 | # 备份 |
继承的镜像也会一同打包进去
再次导入之后 , 该镜像就不再作为一个子镜像存在了
比如该镜像继承jre镜像 , 那么打包之后的tar包当中直接包含jre镜像的内容
容器的导出与导入
要将一个容器进行导出与导入 , 使用的是export
和import
1 | # 导出容器 |
容器内时区的错误
如果容器当中的程序在执行中需要获取当前时间并进行格式化
若没有特别指定 , 通常会读取操作系统的时区设定
由于容器内是一个独立的环境 , 这个设定有可能不正确
如果出现这类错误( 比如程序获取当前时间写入到数据库 , 时间提前了8小时 )
可以在构建镜像的时候执行如下命令 , 来指定容器内的时区
1 | echo "Asia/Shanghai" > /etc/timezone |
也就是设定时区为东八区
清理容器日志
如果容器内运行的程序在控制台输出的内容过多, 这些内容都会保存在容器日志当中
久而久之会导致容器日志文件过大
容器的日志文件通常在/var/lib/docker/containers/容器ID/
当中
其中的[容器ID]-json.log
文件就是容器的日志文件
比如容器ID是123 , 我们可以使用下面的命令来清空这个文件
1 | cat /dev/null > 123-json.log |
也可以写一个批量清理的shell脚本来执行
1 |
|