docker保存镜像到本地和加载本地镜像文件

1、首先查看已有的镜像文件:

指令:docker images 

2、将镜像打包成本地文件

指令:两种方式

(1)docker save [镜像id] > [文件名.tar]

(2)docker save -o [文件名.tar] [镜像id]

3、在另一台主机加载本地文件到镜像

指令:docker load  < 文件名.tar

4、镜像重命名

执行完上述语句后,通过docker images查看本地镜像,会看到新加载的镜像名字和标签都是none,利用该镜像的id对名字和标签重新命名即可:

指令:docker tag 镜像id 镜像名:标签       (标签可以是容器的版本号)

5、创建容器

指令:

docker run -it --name [指定一个用于与其它容器区分的name] -it

如果需要容器内部访问外部文件可以追加参数 -v [/home/dir:/home/dir]

运行时设置容器映射端口

docker run -i -t -d -p 9000:80 容器name

5 其它一些命令

docker ps -a  列出所有在运行的容器

docker images 列出所有镜像

docker exec -it 容器id /bin/bash  进入容器

docker rm  id  删除容器  ps查到的

docker rmi id  删除镜像  images 查到的

启动/关闭容器   docker start/stop 容器id

退出容器 ctrl D

容器内文件或文件夹和宿主机之前相互传递  

指令:docker cp 

都是容器外执行

例:docker cp 容器id:/var/..  /home/..宿主机目录

6、要保存对一个docker容器的改动怎么办?答案:commit

上面用的save和load用于把已经存在的镜像在服务器之间搬运,而对一个容器做了改动之后,可以通过commit命令把容器生成成镜像,然后就可以通过save和load搬运了

docker commit [容器id] [起一个镜像名]

之后就可以通过docker images查看生成的镜像了

7、docker run 之后生成的container不是root权限

如果执行docker run 是root用户执行的,生成的container不是root的话,在docker run时加参数:-u root

8、docker tag

如果我通过docker save存出来一个image,load到另一台机器的话,可能load出来的image的repository和tag都是none

所以用docker tag给它标记

docker tag imageID 名字:tag

9、关于docker exec进入容器

一般是,docker exec -it 容器名或id bash

-it很重要,如果不加的话其实执行完这条命令就退出容器了

bash其实就是进入容器使用的命令,就相当于dockerfile里最后那个CMD命令,就是说CMD命令是可以在docker run或exec的时候替换最后的bash的。



作者:HandsomeBo_4c50
链接:https://www.jianshu.com/p/3517abce16f0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(docker,容器,运维)