抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

docker速查小手册

记录一些docker常用指令

查看镜像

1
sudo docker images

查看容器

1
sudo docker ps -a

进入正在运行的容器

1
sudo docker exec -it ${容器id} bash

提交容器修改,保存为镜像

1
sudo docker commit $(容器id) ${仓库名}:${版本号}

删除镜像

1
sudo docker rmi ${镜像id(可只取前3字符)}

停止/启动容器

1
sudo docker start/stop ${容器id(可3字符)}

删除容器(停止容器之后)

1
sudo docker rm ${容器id(可3字符)}

查看容器详细信息

1
sudo docker inspect ${容器id(可3字符)}

查看容器日志

1
sudo docker logs ${容器id(可3字符)}

进入容器

1
sudo docker exec -it ${容器id(可3字符)} /bin/bash

导出、导入

1
2
sudo docker save -o ${导出路径/文件名及后缀(.tar.gz)} ${需要导出的镜像ID(可3字符)}
sudo docker load -i ${导入路径/文件名及后缀(.tar.gz)}

1
2
sudo docker export ${需要导出的容器id(可3字符)} > ${导出路径/文件名及后缀(.tar)}
sudo docker import ${导入路径/文件名及后缀(.tar)} ${镜像名}

两种方式区别

  1. 首先,export命令是从容器(container)中导出tar文件,而save命令是从镜像(image)中导出
  2. 文件大小不同:export导出的镜像文件小于save保存的镜像
  3. 是否支持对镜像重命名:
    • import命令可以为镜像指定新名称
    • load命令不能对载入镜像重命名
  4. 是否支持将多个镜像打包到一个文件:
    • export不支持
    • save支持
  5. 是否包含镜像历史:
    • export导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史记录和元数据信息,即其仅保存容器当时的快照状态,所以无法进行回滚操作
    • save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)
  6. 应用场景:
    • export主要用来制作基础镜像,作为开发的基础环境
    • save是将用到的镜像打包,然后拷贝到不能连接外网的服务器上并用load

容器之间互相复制文件

1
sudo docker cp ${容器id(可3字符)}:${容器内路径} ${目标容器id(可3字符)}:${目标容器内路径}

基于当前容器创建镜像

1
sudo docker commit -a "作者信息" -m "描述信息" ${容器id(可3字符)} ${镜像名:${版本号}}

docker run

用于根据指定的镜像创建和启动一个新的容器,

基本语法:

1
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

执行流程:

第一步,在指定镜像上创建一个可写的容器层
第二步,使用指定命令(COMMAND)启动
简而言之,docker run相当于执行两个API: /containers/create、/containers/(id)/start

OPTIONS说明:

-i,以交互模式运行容器,通常与 -t 同时使用
-t,启动容器后,为容器分配一个命令行,通常与 -i 同时使用
-v,目录映射,容器目录挂载到宿主机目录,格式: <宿主机目录>:<容器目录>
-d,守护进程,后台运行该容器
-p,指定端口映射,格式:主机(宿主)端口:容器端口-P,随机端口映射,容器内部端口随机映射到主机的端口
-u,以什么用户身份创建容器--name "容器名字"
-m, --memory bytes,设置容器使用内存最大值
-h, --hostname string,指定容器的宿主机名
--dns指定容器 dns 服务器
-e 设置环境变量
--restart,Docker重启后,容器是否自动重启
--privileged,容器内是否使用真正的root权限

很多指令随用随查即可,也可以直接加--help查看帮助信息

评论