##目录
Docker载入载出
镜像导入导出
- 导出
shell script docker save -o 路径/目标名.tar 镜像名[如 nginx:latest]
- 导入
shell script docker load -i 路径/目标名.tar
容器导入导出
- 导出
shell script docker export -o 路径/目标名.tar 容器名[如 abc123]
- 导入
```shell script
docker import 路径/目标名.tar [nginx:imp]
<a name="id003"></a> #### 容器提交为镜像 ```shell script docker commit [OPTITIONS] CONTAINER [REPOSITORY[:TAG]]] -a:提交作者 -c:使用DockerFile指令创建新的镜像 -m:提交时的文字说明 -p:提交时把容器暂停 #example: docker commit -a "laowng" -m "for example" 容器ID myimage:v1
容器或镜像加载
- 上述import或者load方法载入后都会以镜像的形式展示在Docker中,使用时需要重新实例化。 区别是export方法存储的图像没有layer层,即只有第一层FROM层和系统包含的用户文件。而save会将所有的layer 保存,并保留用户文件,所以后者对于程序更友好,程序运行一般也不会出错,但是保存的文件也更大。
- 例如Dockerfile文件如下,export命令将会丢失让所有RUN命令。
FROM centos RUN yum install wget RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" RUN tar -xvf redis.tar.gz
Docker网络模式
4种网络模式
-
docker使用 –net=“mode” 的方式进行指定容器的网络模式。
-
需要明确的是 docker—daemon(docker守护进程,可理解为Docker服务)和container的网络模式是相互独立的,一般 docker-daemon与主机共享同一个网卡(host模式),即也共享同一个ip地址。
-
也有例外情况,比如在宿主机为windows系统非hyper-v模式下,那么Docker将依赖于Virtualbox(oracle虚拟机), 该虚拟机默认的网络模式为新建一块虚拟网卡,并于主机网卡桥接。此时可以认为Docker-daemon采用了桥接的网络模式(bridge模式)。
-
docker-container的四种网络模式
- bridge 该模式为缺省网络模式(也可以新建一个,在这种模式下 容器会虚拟一个新网卡,并与docker—daemon的网卡建立桥接。 使用这种模式不同的容器之间可以直接使用容器内部ip 进行通信。
- host 该模式,container和docker-daemon共享一个网卡,也即共享一个ip地址。所以这种情况下不同容器具有相同的ip, 只能相同的ip,不同的端口(使用端口映射)进行通信。
- None 该模式,Docker会关闭容器的网络,适用于不需要网络的容器
- container 使用 “ –net=container:container_id(容器名也可以) “进行设置,该模式下新容器与已存在容器共享一个网卡,共享一个ip。
-
创建一个新的网桥
sudo docker network create --subnet=172.18.0.0/16 fixbridge
将容器运行在新的网桥上
sudo docker run --name redis_101 -itd --net fixbridge --ip 172.18.0.101 --restart always
--volume /volume1/docker/redis/data:/var/lib/redis
--volume /volume1/docker/redis/log:/var/log/redis
--env 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
--env 'REDIS_VERSION=4.0.9'
--env 'REDIS_USER=redis'
--env 'REDIS_DATA_DIR=/var/lib/redis'
--env 'REDIS_LOG_DIR=/var/log/redis'
sameersbn/redis:latest
--name 容器的名称, 我起的名字里面带ip,方便查看
--net 我们创建的网络名称,写你的网络名字哦
--ip 指定的ip。除了该参数界面无法配置外,其他参数界面均可配置。
--restart always 不当关机时,会尝试重启
--volume 指定路径映射, :前面是宿主的路径,该路径你需要在群辉里面创建的。 :后面是映射到容器内部的路径。
--env 环境变量