# 查询本地已有的镜像
$ sudo docker images
# 查看本地所有的容器(列出运行或者休眠的docker进程)
$
sudo docker ps
-a
# 启动镜像,并获取一个伪终端
# 注意:实际启动的是容器,启动镜像时会自动创建新容器并启动。
$ sudo docker run -it <
REPOSITORY:TAG> /bin/bash
# 使用 仓库名+标签 启动
$ sudo docker run -it <
IMAGE
ID>
/bin/bash
# 使用 IMAGE ID 启动
docker run 通常搭配-i,-t,-d使用
-i | 以交互模式运行容器,通常与 -t 同时使用; |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用; |
-d | 后台运行容器,并返回容器ID; |
#创建容器
docker create <image-id>
# 启动容器
$
sudo docker start <CONTAINER ID>
# 使用 CONTAINERID 启动
docker run = docker create + docker start
# 链接到容器,并获取一个伪终端:
$
sudo docker
exec -it <CONTAINER ID>
$
sudo docker stop <CONTAINER ID>
# 停止
$
sudo docker restart <CONTAINER ID>
# 重新启动容器
$
sudo docker kill <CONTAINER ID>
# 杀死运行的容器
$
sudo docker commit 3a09b2588478ubuntu:mynewimage 保存修改(本地)
$
sudo docker ps –a 列出运行或者休眠的docker进程
$
sudo docker kill $(docker ps -aq) 杀掉正在运行的docker容器
$
sudo docker rm $(docker ps -aq) 删除docker容器
$
sudo docker rmi imageid 删除镜像
$
docker tag <image_name> <registry_ip>/<image_name>:<version> 给镜像打tag
$
docker push <registry_ip>/<image_name>:<version>;上传镜像至私有仓库
$
docker pull <registry_ip>/<image_name>:<version>;从私有仓库pull镜像
# 退出容器
>>
$ exit
# 或使用快捷键 Ctrl +D
导出镜像
docker save [OPTIONS] IMAGE [IMAGE...]
docker save -o ubuntu_latest.tar ubuntu:latest
选项:
-o, --output 写入到文件
docker save命令会创建一个镜像的压缩文件,这个文件能够在另外一个主机的Docker上使用。和export命令不同,这个命令为每一个层都保存了它们的元数据。这个命令只能对镜像生效。
导入镜像
docker load --input ubuntu_latest.tar
选项:
-i, --input 从压缩包载入镜像
# 或者
docker load < ubuntu_latest.tar
导出容器
注意:export导出的是容器,不是镜像。
docker export <CONTAINER ID> > my_container.tar
docker export 命令会把容器的文件系统以tar包的格式导出到标准输出。将容器保存到本地后,我们就可以通过网络等方式将tar包分享给他人。
docker export命令创建一个tar文件,并且移除了元数据和不必要的层,将多个层整合成了一个层,只保存了当前统一视角看到的内容(译者注:expoxt后的容器再import到Docker中,通过docker images –tree命令只能看到一个镜像;而save后的镜像则不同,它能够看到这个镜像的历史镜像)。
导入容器
cat my_container.tar |docker import - image_name:tag
或
docker import - image_name:tag < my_container.tar
说明:
1> 这里使用>>
符号,表示命令在docker
的伪终端中执行。
2> 在docker
的伪终端中使用 #
符号,我们使用 $
替代。
3> 容器编号-CONTAINERID,镜像编号-IMAGE ID