40

Docker 江湖之初入江湖

 5 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzI1MTQwNTY0NA%3D%3D&%3Bmid=2247483732&%3Bidx=1&%3Bsn=8d9921e0427c7cd776148084b7111d8a&%3Bchksm=e9f23577de85bc617daba06c5a21c9979ec663c0ba29a67e8da4db2aeb860a30e3bf897
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

序章

我,一位土生土长于 口袋大陆 的平凡人,本应按部就班,过着朝九晚五的生活,奈何命本不凡。

在少年时偶得一本奇书《Docker 宝典》,后闲来无事,开始翻看,痴迷于其中。

从此,我踏上了修炼 Docker 的不归路,开启了 996 的生活。

这本《我的 Docker 江湖》是我的笔记。

接下来的故事我将带你一起,见证这一路的修炼过程。

少侠,我们开始吧。

缘起

时间:很久很久很久以前…

地点:口袋大陆

怪老头:啊,靓仔,靓仔,别走啊,不得了,不得了啊!

我:怎么?

怪老头:你有道灵光从天灵盖喷出来,你知道吗?

年纪轻轻的,就有一身横练的筋骨,简直是百年一见的编程奇材。

如果有一天,让你打通任督二脉…那还不飞龙上天啊!

怪老头:正所谓:

我不入地狱,谁入地狱,警恶惩奸,维护世界和平这个任务,就交给你了,好吗?

怪老头:好的,好的,好的

怪老头:这本 《Docker 宝典》 是无价之宝,我看与你有缘,就免费传授给你吧!

我:这是啥?(先收了再说)

IVVN7nf.jpg!web

简介

初入 Docker 江湖 ,我将赠与你一张命令图谱。

当你在修炼中走火入魔时,可根据此图谱,找到正确的解法。

其中每一命令都有更深入的招式,我将会在后续的实践中,一一传授。

rAjeY32.jpg!web

目录

Image 之'CRUD' 从 Dockerfile 创建镜像 根据容器的更改创建新镜像 查看镜像列表 查看镜像历史 添加镜像标签 删除镜像 Container 之 'CRUD' 创建一个新的容器 创建新的容器并执行命令 进入容器 查看容器列表 查看容器详情 查看容器内运行的进程 查看容器端口映射 查看容器资源占用信息 查看容器日志 查看服务器实时事件 更新容器配置 更新容器名称 删除容器 Image 保存/加载 保存镜像 加载镜像 Container 生命周期 启动容器 停止容器 暂停/恢复 重启容器 杀掉运行中的容器 等待容器退出 Container 导入/导出 导出容器 导入容器 Container 与本机交互 复制文件/文件夹(本机 ⇆ 容器) 检查容器内文件/文件夹的更改 镜像仓库 从 Docker Hub 搜索镜像 登录/退出 Docker 仓库 从镜像仓库拉取 & 更新/推送指定镜像 信息/版本 查看 Docker 系统范围信息 查看 Docker 版本信息

Image 之'CRUD'

从 Dockerfile 创建镜像

Usage:
    docker build [OPTIONS] PATH | URL | -

Example:
    docker build -t test/ubuntu:v1 .

根据容器的更改创建新镜像

Usage:
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Example:
    docker commit -m "test" bd3fa0536c33  ubuntu:test

查看镜像列表

Usage:
    docker images [OPTIONS] [REPOSITORY[:TAG]]

Example:
    docker images

查看镜像历史

Usage:
    docker history [OPTIONS] IMAGE

Example:
    docker history ubuntu

添加镜像标签

添加的 tag 可理解为创建了 link 链接到原来的镜像,他们具有相同的镜像 ID

执行 docker rmi RESPOSITORY[:TAG] 命令去删除镜像时,若有此镜像还有其它标签,仅会移除当前标签 Untagged ,镜像不会被移除。若当前镜像 ID 仅一个标签时,则会解除标签并删除镜像。

Usage:
    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Example:
    docker tag ubuntu:latest testubuntu:latest

删除镜像

Usage:
    docker rmi [OPTIONS] IMAGE [IMAGE...]

Example:
    docker rmi 03b4557ad7b9

Container 之 'CRUD'

创建一个新的容器

create命令创建容器,默认为停止状态

Usage:
    docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Example:
    docker create ubuntu

创建新的容器并执行命令

Usage:    
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Example: 
    docker run -it ubuntu bash
    docker run -it ubuntu echo 'Hello Docker'
    docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

进入容器

进入容器有两种方式: attachexec 命令

attach 介绍:将本地的标准输入、输出、错误流附加到正在运行的容器。

attach 弊端:当多个窗口通过 attach 命令进入同一容器,所有窗口都会同步显示,当某个命令阻塞的时候,其它窗口也无法进行操作了。

exec 介绍:在一个运行的容器中执行命令。

exec 优点:通过制定 -it 参数来保持标准输入打开,并分配一个伪终端,执行 bash 会打开一个新的终端与容器进行交互,对其他用户不影响。

Usage:
    docker attach [OPTIONS] CONTAINER
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Example:
    docker attach bd3fa0536c33
    docker exec -it bd3fa0536c33 bash

查看容器列表

Usage:
    docker container ls [OPTIONS]

Aliases:
    ls, ps, list

Example: 
    docker container ls
    docker container ps
    docker ps
    docker container list

查看容器详情

inspect可查看镜像、容器详情

container inspect用来查看容器详情

Usage:
    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    docker container inspect [OPTIONS] CONTAINER [CONTAINER...]

Example:
    docker inspect bd3fa0536c33
    docker container inspect bd3fa0536c33

查看容器内运行的进程

Usage:
    docker top CONTAINER [ps OPTIONS]

Example:
    docker top bd3fa0536c33

查看容器端口映射

Usage:
    docker port CONTAINER [PRIVATE_PORT[/PROTO]]

Example:
    docker port bd3fa0536c33

查看容器资源占用信息

Usage:
    docker stats [OPTIONS] [CONTAINER...]

Example:
    docker stats bd3fa0536c33

查看容器日志

Usage:
    docker logs [OPTIONS] CONTAINER

Example:
    docker logs bd3fa0536c33

查看服务器实时事件

Usage:
    docker events [OPTIONS]

Example:
    docker events

更新容器配置

Usage:
    docker update [OPTIONS] CONTAINER [CONTAINER...]

Example:
    docker update --cpu-shares 512 ae540ed39427

更新容器名称

Usage:
    docker rename CONTAINER NEW_NAME

Example:
    docker rename ae540ed39427 test_ubuntu

删除容器

移除指定 CONTAINER 可通过 rm 命令

批量移除所有停止的 CONTAINER 可使用 prune 命令

Usage:
    docker container rm [OPTIONS] CONTAINER [CONTAINER...]
    docker container prune [OPTIONS]

Example:
    docker container rm bd3fa0536c33
    docker container prune

Image 保存/加载

保存镜像

Usage:
    docker save [OPTIONS] IMAGE [IMAGE...]

Example:
    docker save -o test_ubuntu.tar 3ff4930bc673

加载镜像

Usage:
    docker load [OPTIONS]

Example:
    docker load -i test_ubuntu.tar

Container 生命周期

启动容器

Usage:
    docker start [OPTIONS] CONTAINER [CONTAINER...]

Example:
    docker start bd3fa0536c33

停止容器

Usage:
    docker stop [OPTIONS] CONTAINER [CONTAINER...]

Example:
    docker stop bd3fa0536c33

暂停/恢复

Usage:
    docker pause CONTAINER [CONTAINER...]
    docker unpause CONTAINER [CONTAINER...]

Example:
    docker pause bd3fa0536c33
    docker unpause bd3fa0536c33

重启容器

Usage:
    docker restart [OPTIONS] CONTAINER [CONTAINER...]

Example:
    docker restart bd3fa0536c33

杀掉运行中的容器

Usage:
    docker kill [OPTIONS] CONTAINER [CONTAINER...]

Example:
    docker kill bd3fa0536c33

等待容器退出

Usage:
    docker wait CONTAINER [CONTAINER...]

Example:
    docker wait bd3fa0536c33

Container 导入/导出

导出容器

Usage:
    docker export [OPTIONS] CONTAINER


Example:
    docker export -o docker_bak.tar bd3fa0536c33

导入容器

Usage:
    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

Example:
    docker import docker_bak.tar bak/ubuntu:v1.0

Container 与本机交互

复制文件/文件夹(本机 ⇆ 容器)

Usage:
    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Example:
    docker cp  bd3fa0536c33:/www /www/py_script/
    docker cp /www/py_script bd3fa0536c33:/www/

检查容器内文件/文件夹的更改

Usage:
    docker diff CONTAINER

Example:
    docker diff
    docker diff bd3fa0536c33

镜像仓库

从 Docker Hub 搜索镜像

Usage:
    docker search [OPTIONS] TERM

Example:
    docker search ubuntu

登录/退出 Docker 仓库

Usage:
    docker login [OPTIONS] [SERVER]

Example:
    docker login
    docker login -u [username] -p [password]
    docker logout

从镜像仓库拉取 & 更新/推送指定镜像

Usage:
    docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    docker push [OPTIONS] NAME[:TAG]

Example:
    docker pull ubuntu
    docker push ubuntu:test1

信息/版本

查看 Docker 系统范围信息

Usage:
    docker info [OPTIONS]

Example:
    docker info

查看 Docker 版本信息

Usage:
    docker version [OPTIONS]

Example:
    docker version

未完待续

RBbQJrn.jpg!web

听说好看的人才能点


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK