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的。