制作docker镜像小记

本文记录了制作Docker镜像的步骤,包括将操作系统转化为镜像、导入与导出镜像的技巧,以及在启动容器时可能遇到的问题和解决方案,如Error getting authority错误。同时,还提及了piperwork工具的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

制作docker镜像小记

1、将初始化的操作系统转化为镜像

### 其中--exclude可以将无关的文件或目录排除在外
tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos7-base.tar /

2、导入镜像

docker import centos7-base.tar

镜像的导入还有docker load,导出有docker exportdocker save。export和import搭配使用,save和load搭配使用。区别联系这里不讲了。

3、容器的启动

### 查看镜像
docker images
### 启动容器
docker run  -itd --privileged=true --net=bridge --name sdds img:1.0 /usr/sbin/init
## --privileged=true是容器获得宿主机权限, 
## /usr/sbin/init 启动容器后可使用systemctl ,对于ubantu系统使用/sbin/init
## --net为网络连接方式

其他参数如下:

参数意义
-P全端口映射
-p端口映射,-p 3443:443 宿主机端口:容器端口
-itd-it以交互模式运行并返回一个伪终端,加-d以后表示后台执行。连在一起就表示在后台运行这个docker
–privileged=true开启特权模式,可以使用容器拥有真正的root权限
–restart=always容器在设备重启时,自动重启
–cpuset-cpus设置cpu使用那几个
–memory=3G设置内存占用
–device-write-bps设置磁盘写速率
–device-read-bps设置磁盘读速率
–net=bridge以桥接方式连接docker
–name设置容器名称

4、容器内服务启动失败,若报错为:Error getting authority: Error initializing authority: Could not connect: No such file

## 进入容器
docker exec -it containerName /bin/bash
## cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Mar 18 03:04:20 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_linux_267-lv_root /                       xfs     defaults        0 0
UUID=17767773-e93a-4207-8e05-ad41c551fdfe /boot                   xfs     defaults        0 0
#UUID=0af36fce-71b6-4ced-9fe1-33bbc02aa115 swap                    swap    defaults        0 0

## 会发现/boot的一块盘,将这行注释,如下:
/dev/mapper/vg_linux_267-lv_root /                       xfs     defaults        0 0
#UUID=17767773-e93a-4207-8e05-ad41c551fdfe /boot                   xfs     defaults        0 0
#UUID=0af36fce-71b6-4ced-9fe1-33bbc02aa115 swap                    swap    defaults        0 0

## 然后重启
reboot
## 或者退出重启容器
exit
docker restart containerName


## 在对基础镜像做了修改后,我们要保留修改,可以使用docker commit 提交更改 -a是作者信息,-m是提交的信息
docker commit -a="snow" -m"inital sdds" f080fa8f2723 img:2.0

##另外一种办法是在容器内部重新生成新的镜像


5、piperwork的使用

pipework eth0 5cd1494671e9 192.168.10.10/24@192.168.10.254
解释
字段名意义
eth0网卡名,容器中是eth0
5cd1494671e9容器id
192.168.10.10/24需要给容器配置的ip及掩码
192.168.10.254网关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值