Docker入门指南

Docker命令行的基本使用

docker命令行的规则基本遵循“docker + 管理的对象(比如容器,镜像) + 具体操作(比如创建,启动,停止,删除)”

# 查看docker版本
docker version

# 查看docker信息
docker info

# 查看container相关命令
docker container --help

# 查看image相关命令
docker image --help

Docker的image和container

  • image镜像
    • Docker image是一个read-only文件
    • 这个文件包含文件系统,源码,库文件,依赖,工具等一些运行application所需要的文件
    • 可以理解成一个模板
    • docker image具有分层的概念
  • container容器
    • 可以理解成一个运行中的docker image
    • 实质是复制image并在image最上层加上一层 read-write 的层 (称之为 container layer ,容器层)
    • 基于同一个image可以创建多个container

创建第一个容器

执行这条命令即可创建一个nginx容器。该命令首先会去本地查找是否有本地的nginx镜像,如若没有则去仓库中拉取。

sudo docker container run -d -p 8088:80 --name web nginx

这条命令在执行后发生了什么?

  • 在本地查找是否有nginx这个image镜像,但是没有发现
  • 去远程的image registry查找nginx镜像(默认的registry是Docker Hub)
  • 下载最新版本的nginx镜像 (nginx:latest 默认)
  • 基于nginx镜像来创建一个新的容器,并且准备运行
  • docker engine分配给这个容器一个虚拟IP地址
  • 在宿主机上打开8080端口并把容器的80端口转发到宿主机上
  • 启动容器,运行指定的命令(这里是一个shell脚本去启动nginx)

以下是容器常用命令:

操作命令(全)
容器的创建docker container run <image name>
容器的列出(up)docker container ls
容器的列出(up和exit)docker container ls -a
容器的停止docker container stop <name or ID> <name or ID>
容器的重启docker container start <name or ID> <name or ID>
容器的删除docker container rm <name or ID> <name or ID>
容器的批量停止docker container stop $(docker container ls -aq)
容器的批量删除docker container rm $(docker container ls -aq)
# 可以快速对系统进行清理,删除停止的容器,不用的image,等等
docker system prune -a -f

Docker容器的attached和detached模式

  • attached模式是容器运行在前台,也是默认模式。
  • detached模式是容器运行在后台,可以通过运行时docker container run -d带上参数进入后台模式。后台模式中,也可通过docker container attach <name or ID>重新进入前台模式

Docker容器交互模式

由于通过-d参数,我们使容器进入了后台运行模式,那我们如何获取容器的运行日志呢?

# 该命令可以刷新容器的日志输出
sudo docker container logs -f <name or ID>

但是获取日志这个并不是我们的真正需求,我们希望能够直接进入容器,与容器进行交互。有两种方式:

# 方法一,创建一个容器时并进入交互式模式
sudo docker container run -it [COMMAND] [ARG...]

# 方法二,在一个已经运行的容器里执行一个额外的command
sudo docker exec -it [COMMAND] [ARG...]

# 该参数可以创建一个命令执行后自动删除的镜像
sudo docker container run -it --rm [COMMAND] [ARG...]

Docker镜像的获取

  • pull from registry (online) 从registry拉取
    • public(公有)
      • https://hub.docker.com/
    • private(私有)
  • build from Dockerfile (online) 从Dockerfile构建【Dockerfile入门指南
  • load from file (offline) 文件导入 (离线)
  • commit from container 容器转化

以下是镜像常用命令:

操作
命令(全)
镜像的拉取docker pull [OPTIONS] NAME[:TAG|@DIGEST]
镜像的查看docker image ls
镜像的删除docker image rm [OPTIONS] IMAGE [IMAGE…]
镜像的导出docker image save -o ~/桌面/nginx_image.tar IMAGE
镜像的导入docker image load -i ~/桌面/nginx_image.tar

Docker容器生成镜像

还有一种方式可以生成镜像文件,就是将当前容器提交生成镜像。

sudo docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Docker镜像的分享

当我们创建自己的镜像后 ,如何将镜像分享到官方的DockerHub中呢?

# 首先需要登录,然后输入dockerHub中的账号密码
sudo docker login

# 设置镜像REPOSITORY带上dockerHub ID开头和设置tag
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

# 上传镜像,即可在dockerHub中的my profile中查看镜像
sudo docker image push [OPTIONS] NAME[:TAG]
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇