docker基本操作
当前操作基于ceontos
基于当前系统制作docker镜像
1: 通过tar 进行目录的备份
tar -cpvf ${target.tar} --directory=/ --exclude=proc --exclude=sys/kernel --exclude=dev --exclude=run /
- 由于我的开发环境直接在root权限下安装搭建的, 所以 /sys下有些头文件是必须具备的,因此只将 sys/kernel 排外。
- ${target.tar} 是你将要保存的目录的备份的名字 例如:
tar -cpvf ./base_dev_env_v0.1.tar --directory=/ --exclude=proc --exclude=sys/kernel --exclude=dev --exclude=run /
2: 导入镜像
docker import base_dev_env_v0.1.tar ${image_name}
如:
docker import base_dev_env_v0.1.tar baseos_mu
3: 查看并运行镜像
docker images #查看镜像
#运行镜像
docker run -it ${image_name} /bin/bash
4: 删除该镜像
docker ps -a #查到该容器ID, 例如:63f7a69h98b
docker rm 63f7a69h98b #删掉容器, 否则在删除镜像时候会说该镜像正在被使用不能删除
docker rmi ${image_id} #删除镜像
docker保存修改后的镜像
上边已经做了一个镜像了,如果发现该镜像上有一些文件是垃圾文件,像删除净化镜像或者对镜像做一些修改并保存下来,可以这么做:
1: 启动镜像并修改
docker run -it baseos_mu /bin/bash
#删掉/home/username
[root@811db401b8c5 home]# rm -rf username
[root@811db401b8c5 home]# exit
注意这个id: 811db401b8c5, 是容器的id
2: 提交这个修改
docker commit 811db401b8c5 baseos_mu_v0.1
#再次查看发现多了一个新的镜像 baseos_mu_v0.1
[root@dev ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
baseos_mu_v0.1 latest 6665d7d0c13e 6 seconds ago 7.3GB
baseos_mu latest bc3c8e1d7e49 15 hours ago 7.3GB
提交镜像到 hub.docker 自己的仓库
1: 登录账号
xxxxx为username
[root@dev ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: xxxxx
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
2: push
[root@dev ~]# docker push xxxxx/baseos_mu_v0.1
The push refers to repository [docker.io/xxxxx/baseos_mu_v0.1]
An image does not exist locally with the tag: xxxxx/baseos_mu_v0.1 #报错了,说没对该镜像打tag
#打tag
[root@dev ~]# docker tag baseos_mu_v0.1 xxxxx/baseos_mu_v0.1
[root@dev ~]# docker push xxxxx/baseos_mu_v0.1
The push refers to repository [docker.io/xxxxx/baseos_mu_v0.1]
a5f709e915d6: Pushed
7db404710954: Pushed
latest: digest: sha256:6ba6e502a760721c0b28a5c530fec32078692334358b66f863311df6137abf88 size: 739
[root@dev ~]#