Docker入门命令


1. 安装Docker

uname -r 
# '版本大于3.10'
yum update 
curl -fsSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2. 搜索/下载镜像

docker search redis

docker pull redis:2.8

3. 查询本地镜像

docker images

4. 启动镜像到容器

docker run -p 6379:6379 -d redis:2.8

5. 查询已启动镜像/容器

docker ps -a

6. 进入容器环境

docker exec -it NAMES bash

7. 创建镜像

  1. 基于已有镜像的容器创建
  2. 基于本地模板导入
  3. 基于Dockerfile创建

7.1. 基于已有镜像的容器创建

使用docker [container] commit命令

命令格式:docker [container] commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

选项:

短格式 长格式 注释
-a –author string 作者信息 (e.g., “John Hannibal Smith [email protected]”)
-c –change list 提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等 (default [])
–help Print usage
-m –message string 提交消息
-p –pause 提交时暂停容器运行 (default true)

7.2. 基于本地模板导入

使用docker [image] import命令

命令格式:docker [image] import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

选项:

短格式 长格式 注释
-c –change list 将Dockerfile指令应用于创建的映像 (default [])
–help Print usage
-m –message string 设置导入镜像的提交消息

示例:

  1. 从 http://openvz.org/Download/templates/precreated 下载模板压缩包ubuntu-18.04-x86_64-minimal.tar.gz
  2. 使用cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import - ubuntu:18.04命令导入新镜像

7.3. 基于Dockerfile创建

Dockerfile是个文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。
使用docker [image] build命令

命令格式:docker [image] build [OPTIONS] PATH | URL | -

选项:

短格式 长格式 注释
–build-arg list 设置构建时变量 (default [])
–cache-from stringSlice 视为缓存源的镜像
–cgroup-parent string Optional parent cgroup for the container
–compress Compress the build context using gzip
–cpu-period int Limit the CPU CFS (Completely Fair Scheduler) period
–cpu-quota int Limit the CPU CFS (Completely Fair Scheduler) quota
-c –cpu-shares int CPU shares (relative weight)
–cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
–cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
–disable-content-trust Skip image verification (default true)
-f –file string Dockerfile的名字 (Default is ‘PATH/Dockerfile’)
–force-rm Always remove intermediate containers
–help Print usage
–isolation string Container isolation technology
–label list Set metadata for an image (default [])
-m –memory string Memory limit
–memory-swap string Swap limit equal to memory plus swap: ‘-1’ to enable unlimited swap
–network string Set the networking mode for the RUN instructions during build (default “default”)
–no-cache Do not use cache when building the image
–pull Always attempt to pull a newer version of the image
-q –quiet 禁止生成输出并在成功时打印镜像ID
–rm Remove intermediate containers after a successful build (default true)
–security-opt stringSlice Security options
–shm-size string Size of /dev/shm, default value is 64MB
-t –tag list 名字和可选的tag,格式为’name:tag’ (default [])
–ulimit ulimit Ulimit options (default [])
-v –volume list 设置构建时绑定挂载 (default [])

8. 迁移镜像

  1. 导出镜像到tar包
  2. 复制到其他机器
  3. 从tar包导入镜像到本地镜像库

8.1. 导出镜像到tar包

使用docker [image] save命令

命令格式:docker [image] save [OPTIONS] IMAGE [IMAGE...]

选项:

短格式 长格式 注释
–help Print usage
-o –output string 导出镜像到指定的文件中

示例:
docker save -o ubuntu_18.04.tar ubuntu:18.04

8.2. 从tar包导入镜像到本地镜像库

使用docker [image] load命令

命令格式:docker [image] load [OPTIONS]

选项:

短格式 长格式 注释
–help Print usage
-i –input string Read from tar archive file, instead of STDIN
-q –quiet Suppress the load output

示例:
docker load -i ubuntu_18.04.tar
或者:
docker load < ubuntu_18.04.tar

9. 上传镜像

使用docker [image] push命令

命令格式:docker [image] push [OPTIONS] NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]

选项:

短格式 长格式 注释
–disable-content-trust Skip image verification (default true)
–help Print usage

示例:
docker tag test:latest user/test:latest
docker push user/test:latest

10. docker命令帮助

docker --help
语法:  docker COMMAND

A self-sufficient runtime for containers

可选命令:
      --config string      客户端配置文件的位置 (default "/root/.docker")
  -D, --debug              启动调试模式
      --help               显示此回显
  -H, --host list          要连接到的守护程序套接字 (default [])
  -l, --log-level string   设置日志记录级别 ("debug", "info", "warn", "error", "fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   仅由该CA签名的信任证书 (default "/root/.docker/ca.pem")
      --tlscert string     TLS证书文件的路径 (default "/root/.docker/cert.pem")
      --tlskey string      TLS密钥文件的路径 (default "/root/.docker/key.pem")
      --tlsverify          使用TLS并验证远程
  -v, --version            显示版本信息并退出

管理命令:
  container   管理容器
  image       管理镜像
  network     管理网络
  node        管理集群节点
  plugin      管理插件
  secret      Manage Docker secrets
  service     管理服务
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      管理Docker
  volume      管理卷

命令:
  attach      附加到正在运行的容器
  build       从Dockerfile构建镜像
  commit      根据容器的更改创建新镜像
  cp          在容器和本地文件系统之间复制文件/文件夹
  create      创建一个新的容器
  diff        检查容器文件系统上的更改
  events      从服务器获取实时事件
  exec        在正在运行的容器中运行命令
  export      将容器的文件系统导出为tar存档
  history     显示镜像的历史记录
  images      显示镜像清单
  import      从tarball导入内容以创建文件系统镜像
  info        显示系统范围的信息
  inspect     返回有关Docker对象的低级信息
  kill        杀死一个或多个正在运行的容器
  load        从tar存档或STDIN加载镜像
  login       登录Docker在线仓库
  logout      登出Docker在线仓库
  logs        提取容器的日志
  pause       暂停一个或多个容器中的所有进程
  port        列出端口映射或容器的特定映射
  ps          显示容器清单
  pull        从在线仓库拖取一个镜像或者一个库
  push        向在线仓库推送一个镜像或者一个库
  rename      给一个容器改名
  restart     重启一个或多个容器
  rm          删除一个或多个容器
  rmi         删除一个或多个镜像
  run         在新容器中运行命令
  save        将一个或多个镜像保存到tar存档(默认情况下流式传输到STDOUT)
  search      搜索Docker官方仓库中的镜像
  start       启动一个或多个已停止的容器
  stats       显示实时的容器资源使用情况统计流
  stop        停止一个或多个运行中的容器
  tag         创建引用了SOURCE_IMAGE的标签TARGET_IMAGE
  top         显示容器的运行过程
  unpause     取消暂停一个或多个容器中的所有进程
  update      更新一个或多个容器的配置
  version     显示Docker版本信息
  wait        阻塞直到一个或多个容器停止,然后打印其退出代码

运行“docker COMMAND --help”以获取有关命令的更多信息。

11. 相似命令对比

docker [image] import
导入容器快照文件到本地镜像库(容器快照没有历史记录和元数据)

docker [image] load
导入镜像存储文件到本地镜像库(镜像存储文件保存了完整的记录)

docker [image] save
将镜像打包成tar文件

docker [container] export
拍摄容器快照到tar文件

docker [container] commit
从容器创建新镜像

docker [container] create
将镜像放入新容器

docker [container] start
启动没启动的容器

docker [container] run
将镜像放入新容器并启动

docker [container] update
更新容器运行中的参数

发布了31 篇原创文章 · 获赞 11 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/MrRight17/article/details/104270733