54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
---
|
|
title: 3.2、Docker(2)-使用技巧
|
|
date: 2018-2-9 22:38:32
|
|
tags:
|
|
- linux
|
|
- docker
|
|
categories:
|
|
- linux
|
|
---
|
|
|
|
### 与宿主机共享网络
|
|
默认情况下 , 在宿主机可以根据容器暴露出的端口来访问容器中启动的服务
|
|
但是由于容器的隔离 , 在容器内部是无法访问宿主机的服务的
|
|
如果有这种需要 , 可以在启动容器的时候添加参数`--net=host`
|
|
|
|
作用就是使容器和宿主机共用网络
|
|
<!-- more -->
|
|
### 镜像的备份与恢复
|
|
docker的一个重要目标就是方便实现迁移
|
|
对于一个镜像 , 也可以打包出来作为备份 , 或者迁移到其他机器上
|
|
|
|
对于镜像的导出与导入操作 , 使用的是`save`和`load`
|
|
```bash
|
|
# 备份
|
|
docker save -o dump.tar [ImageId]
|
|
|
|
# 恢复
|
|
docker load < dump.tar
|
|
```
|
|
> 继承的镜像也会一同打包进去
|
|
再次导入之后 , 该镜像就不再作为一个子镜像存在了
|
|
比如该镜像继承jre镜像 , 那么打包之后的tar包当中直接包含jre镜像的内容
|
|
|
|
### 容器的导出与导入
|
|
要将一个容器进行导出与导入 , 使用的是`export`和`import`
|
|
```bash
|
|
# 导出容器
|
|
docker export [ContainerId] > demo.tar
|
|
|
|
# 导入容器
|
|
docker import demo.tar [ImageName][:Tag]
|
|
```
|
|
|
|
### 容器内时区的错误
|
|
如果容器当中的程序在执行中需要获取当前时间并进行格式化
|
|
若没有特别指定 , 通常会读取操作系统的时区设定
|
|
由于容器内是一个独立的环境 , 这个设定有可能不正确
|
|
|
|
如果出现这类错误( 比如程序获取当前时间写入到数据库 , 时间提前了8小时 )
|
|
可以在构建镜像的时候执行如下命令 , 来指定容器内的时区
|
|
```bash
|
|
echo "Asia/Shanghai" > /etc/timezone
|
|
```
|
|
也就是设定时区为东八区 |