02-Docker数据管理

**前言:**在本篇文章里,我们主要记录总结在学习docker文件构建、备份、网络连接、数据连接过程中的相关知识点,力求完善的学习Docker相关的数据管理工作。

01-Docker构建与备份

Docker主要有两种构建方法,一种是自己手动构建,另外一种是通过dockerfile去自动化构建,Docker 的构建脚本 Dockerfile 是纯文本文件,所以可以使用 git 等版本控制工具进行管理。
基本的构建DockerFfile构架内容如下:

From ubuntu:latest #选择从哪个镜像去构建
MAINTAINER dormancyprocess "xxx@qq.com" #写上自己的联系方式
RUN apt-get update
RUN apt-get install -y nginx #运行指定命令
EXPOSE 80 #开放80端口

然后可以开始构建容器

docker build -t [自己的镜像名:tag] [dockerfile的目录]

此时Docker构建成功
在这里插入图片描述如果想要本地保存docker,可以使用如下命令:

# 将docker保存为tar文件
docker save -o save.tar [镜像名:tag]
# 恢复tar文件
docker load --input ubweb1.tar

和容器Dockerfile有关的指令如下:

  • From [镜像名:Tag]:指定镜像名
  • MAINTAINER [标签] :给镜像一个命令
  • RUN [命令] :当前镜像执行什么命令
  • EXPOSE [端口] :镜像使用什么端口
  • CMD :在容器运行的时候执行什么命令
  • ENTRYPORT [命令]:不会被Docker的命令覆盖
  • ADD :有类似tar的功能
  • COPY :自己的文件复制到虚拟机的文件中
    • COPY xxx.php /root/var/www/html/index.php
  • VOLUME :卷
    • VLOME [“本地目录”,“容器目录”]
    • CMD /bin/bash
  • WORKDIR:在容器内部设置工作目录
  • ENV [key]=[value]
  • USER uid:gid
  • ONBUILD:镜像触发器
    • 当此镜像被其他镜像作为基础镜像执行时,插入指定

Dokerfile的构建过程:

  1. 从基础镜像运行一个容器
  2. 执行指令对容器做出修改
  3. 执行类似commit操作提供新的镜像
  4. 我们根据新的镜像运行新的容器

02-容器的网络连接

apt-get install -y net-tools
apt-get install -y inetutils-ping #安全ping工具

分别在容器1和容器2中执行以上命令,并且进行网络IP地址查询,可得到如下结果:在这里插入图片描述
此时使用容器2去Ping容器1,发现是可以Ping通的(Docker使用虚拟网桥进行连接,但是每次重启的话IP会变)
在这里插入图片描述
如何解决虚拟网桥重启的:

docker run -d --name web1 --link web2:w2 -p 80 --it [镜像名:Tag] /bin/bash

后续在web1中ping w2即可,无论web2如何改变。
如果想要容器之间无法访问:

mkdir /etc/default/docker
DOCKER_OPTS="--icc=false" #隔离容器
DOCKER_OPTS="--icc=false --iptables=true" #可以使用防火墙对他进行访问
iptables -F #清空防火墙,之后重启Docker服务

如果想要看容器和外部网络是否可以转发

sysctl net.ipv4.conf.all.forwarding

03-容器的数据管理

Docker容器的数据卷在容器创建的时候初始化,我们对数据卷的修改是即时进行的。
数据卷映射方法如下:

docker run -v ~/[本机目录]:[容器目录] -it 镜像名:tag /bin/bash #映射卷
docker run -v ~/[本机目录]:[容器目录]:ro  -it 镜像名:tag /bin/bash #映射卷

如果想使用数据卷容器,具体方法如下:

docker run --volumes-from [容器名]
docker run -it --name testg --volumes-from [容器名] 镜像名:tag /bin/bash

如果想要对数据卷进行备份,具体方法如下:

docker run --volumes-from [备份的容器名] -v [本地位置]:[容器位置]:wr --name [名字] ubuntu
tar cvf /容器中的位置/backup.tar [/容器中需要备份的目录]

如果想要对数据卷进行还原,具体方法如下:

docker run --volumes-from web1-v ~/backup:/backup --name weblbackup ubuntu:latest
/backup/test1.tar /datavolumel

04-容器端口映射

在之前的操作中,我们可能部署了多个容器,其80端口上都开放了相关的Web服务,因此我们需要通过端口映射,将容器中的网页映射到不同的服务器端口上。
一种方法是新建容器时就指定映射:

docker run -d -p 8000:80  [imagename] /bin/sh

另外一种方法是修改容器配置文件:

docker ps -a #找到目标容器ID
docker stop [容器id]
systemctl stop docker
cd /var/lib/docker/containers/[容器ID]
#修改hostconfig.json和config.v2.json 
具体执行流程见Runoob OR CSDN

修改完配置文件后重启Docker服务和容器即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蓝学不会嵌入式!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值