承接上文:centos8.0下docker安装
查看帮助
docker image --help
查看image列表
sudo docker image ls
显示:
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 6 months ago 13.3kB
说明本地仓库有hello-world镜像。
拉取镜像
sudo docker pull hello-world:latest
拉取后可以查看镜像详细信息:
sudo docker image inspect hello-world
创建容器
- 拉取一个镜像busybox:
sudo docker pull busybox:latest
- 使用该镜像创建一个容器
sudo docker container create -it --name boy busybox:latest
-t:让docker分配一个伪终端并绑定到容器的标准输入上, -i:以交互模式运行容器。更多的参数解释 会在本系列后文发布。-it是二者的缩写。
docker container:表示使用docker的容器命令,通过docker container --help可以查看针对容器的所有命令。
create:创建容器。
–name:命名容器,后面的“boy”为容器名,busybox:latest表示容器是基于哪个镜像创建。
- 查看创建的容器
sudo docker container ls -a
- 删除镜像
当镜像已经被用来制作成容器,直接用rm删除镜像,会提示无法删除。提示内容如下:
Error response from daemon: conflict: unable to remove repository reference "busybox:latest" (must force) - container 31ba1900ec20 is using its referenced image beae173ccac6
此时,可以选择关闭容器,然后删除容器,再删除镜像。也可以选择强制删除镜像:
sudo docker image rm -f busybox:latest
- 镜像的导出与导入
为busybox镜像保存备份:
sudo docker image save busybox:latest >bs.tar
保存后,查看保存的文件,输入:
ll
使用scp命令可以拷贝镜像文件,然后用load命令导入镜像,本次没有模拟环境,暂不尝试。
这两个命令便于镜像的转移和保存。
- 启动容器
sudo docker container start boy
- 进入容器
sudo docker container attach boy
进入后,可以查看容器一系列参数:
hostname:名称
ifconfig:ip相关的参数
route:网关
cat /etc/resolv.config:查看dms
ping www.baidu.com:查看能不能ping通,连接网络
echo $PATH:查看容器当前地址
- 容器转换为镜像
为boy容器保存备份:
sudo docker container export boy>bs1.tar
第五步提到的,是对镜像进行保存和导入,使用的命令是save和load。
这里是在镜像的基础上,生成容器后,对容器进行备份,生成了一个对应的镜像。使用的命令是export 和import。
导入备份:
sudo docker image import bs1.tar
执行上述命令后,得到的镜像是没有名称和标签的。导入时设置名称和标签:
sudo docker image import bs1.tar busybox_self:self
一般很少使用这两个命令,更常用的commit,将容器提交为镜像