阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker系列教程3:常用操作命令

1,163次阅读
没有评论

共计 4805 个字符,预计需要花费 13 分钟才能阅读完成。

上次分享了 Docker 的一些入门知识点和 docker 的安装,这次主要讲 docker 的常用操作命令。

Docker 使用镜像常用命令

1. 获取镜像

docker pull ubuntu:14.04
docker pull ubuntu #默认从 registry.hub.docker.com 中获取
docker pull hub.c.163.com/public/ubuntu:14.04# 从网易蜂巢下载镜像
docker run -d -p 80:80 --name webserver nginx# 没有镜像会先下载

2. 查看镜像信息

docker images
docker inspect ubuntu:13.10
docker history ubuntu

3. 查找镜像

docker search TERM
docker search centos
docker search nginx

4. 删除镜像

docker rmi IMAGE
docker rmi ubuntu:13.10    
docker rmi -f ubuntu:13.10# 强制删除镜像

5. 创建镜像的三个方法

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

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# docker run -it ubuntu:14.04 /bin/bash
root@cd391ad59121:/#
记住容器 ID:cd391ad59121
提交新的镜像:
docker commit -m"added a new file lxxxx"-a"jishubu lxx"cd391ad59121 test:0.1
查看:
# docker images
REPOSITORY                   TAG                 IMAGE ID           CREATED             SIZE
test                         0.1                 b2ac4664aadb       16 seconds ago     188 MB

2. 基于本地模板导入

从一个操作系统模板导入一个镜像

cat centos-6-x86_64-minimal.tar.gz |docker import - centos6min

3. 基于 Dockerfile 创建

FROM docker.io/0702/centos7 
MAINTAINER star <funet8@163.com>
ENV TZ"Asia/Shanghai"
ENV TERM xterm
# 新建用户和用户组
RUN groupadd www && useradd -g www www
等等

6. 保存和导出镜像

保存:docker save

docker save <myimage>:<tag> | gzip > <myimage>_<tag>.tar.gz
docker save -o ubuntu_14.04.tar ubuntu:14.04

通过文件将镜像复制给他人

导入:docker load

docker load < ubuntu_14.04.tar

导入镜像

gunzip -c <myimage>_<tag>.tar.gz | docker load

7. 上传镜像

使用 docker push 默认上传到 docker hub 官方

docker pust NAME[:TAG] |[REGISTRY_HOST[:REGISTRY_PORT] /] NAME[:TAG]

Docker 操作容器常用命令

一、创建容器

1. 新建容器

docker create --help
docker create -it ubuntu:latest

create、run 命令支持选项都非常复杂

2. 启动容器

docker start NAMES

3. 创建并启动容器

docker run ubuntu:15.10 /bin/echo"hello world"
docker run -it ubuntu:15.10 /bin/bash
docker run -v /data/mysql:/var/lib/mysql -p 61920:3306 --name mariadb -d mariadb:latest
docker run -d --name myFpm -p 9000:9000 -v /data/wwwroot/web:/usr/share/nginx/html bitnami/php-fpm
docker run -d --name myNginx -p 80:80 -v /data/wwwroot/web:/usr/share/nginx/html -v /data/wwwroot/log:/var/log/nginx nginx

-i 分配一个伪终端并绑定到容器的标准输出上 -t 容器的标准输入保持打开 -p 表示 Docker 镜像内部容器端口暴露给主机 - v 标识来给容器内添加一个数据卷,你也可以在一次 docker run 命令中多次使用 - v 标识挂载多个数据卷

4. 守护态运行

docker run -d ubuntu:15.10 /bin/sh -c"while true;do echo hello world; sheep 1;done"

5. 查看容器

docker ps -l
docker logs NAMES #显示容器的标准输出
docker top NAMES   #docker top 来查看容器内部运行的进程

二、停止、启动、重启容器

docker stop NAME
docker start NAME
docker restart NAME

三、进入容器

1、exec 命令(推荐)

docker exec -it lxx-wordpress /bin/bash

2、attach 命令(不推荐)

# docker run -itd ubuntu:14.04
522681d4c41c7c34ad04779e83253352d1080e85eb9c8f2d1e25f81758379d19
# docker ps
CONTAINER ID       IMAGE               COMMAND             CREATED             STATUS             PORTS               NAMES
522681d4c41c       ubuntu:14.04      "/bin/bash"        12 seconds ago     Up 10 seconds                           distracted_perlman
# docker attach distracted_perlman
root@522681d4c41c:/#

3、nsenter 工具

需要安装软件,不推荐

四、删除容器

docker rm NAMES
docker rm -f NAMES #强制删除

五、导入和导出容器

1. 导出容器 -docker export

# docker run -itd ubuntu:14.04 /bin/bash
# docker export -o test_for_run.tar loving_bohr

2. 导入容器 docker import

docker import test_for_run.tar  test/ubuntu:v1.0
docker images
REPOSITORY                   TAG                 IMAGE ID           CREATED             SIZE
test/ubuntu                   v1.0               69f170a40e6f       6 seconds ago       175.1 MB

Docker save load export import 的区别

export

export 命令用于持久化容器(不是镜像)。所以,我们就需要通过以下方法得到容器 ID:

sudo docker ps -a
接着执行导出:
sudo docker export <CONTAINER ID> > /home/export.tar

save

Save 命令用于持久化镜像(不是容器)。所以,我们就需要通过以下方法得到镜像名称:

sudo docker images
接着执行保存:
sudo docker save busybox-1 > /home/save.tar

使用 export 比使用 save 保存的文件要小一些

load save

两者的使用方法是一样的,导入压缩包生成镜像

docker import - busybox-1-export:latest

docker import 可以重新指定镜像的名字

docker load < /home/save.tar

它们之间到底存在什么不同呢?

首先,docker import 可以重新指定镜像的名字,docker load 不可以

其次,我们发现导出后的版本会比原来的版本稍微小一些。那是因为导出后,会丢失历史和元数据。执行下面的命令就知道了:显示镜像的所有层(layer)

sudo docker images --tree

执行命令,显示下面的内容。正你看到的,导出后再导入 (exported-imported) 的镜像会丢失所有的历史,而保存后再加载(saveed-loaded)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚(可以执行 docker tag 来回滚之前的层)。

常用命令图

有牛人总结了 docker 的操作命令,看图:

总结一下常用命令

其中 <> 阔起来的参数为必选,[]阔起来为可选

docker version 查看 docker 的版本号,包括客户端、服务端、依赖的 Go 等 

docker info 查看系统(docker) 层面信息,包括管理的 images, containers 数等

docker search 在 docker index 中搜索 image

docker pull 从 docker registry server 中下拉 image

docker push 推送一个 image 或 repository 到 registry

docker push :TAG 同上,指定 tag

docker inspect 查看 image 或 container 的底层信息

docker images TODO filter out the intermediate image layers (intermediate image layers 是什么)

docker images -a 列出所有的 images

docker ps 默认显示正在运行中的 container

docker ps -l 显示最后一次创建的 container,包括未运行的

docker ps -a 显示所有的 container,包括未运行的

docker logs 查看 container 的日志,也就是执行命令的一些输出

docker rm 删除一个或多个 container

docker rm `docker ps -a -q` 删除所有的 container

docker ps -a -q | xargs docker rm 同上, 删除所有的 container

docker rmi 删除一个或多个 image

docker start/stop/restart 开启 / 停止 / 重启 container

docker start -i 启动一个 container 并进入交互模式

docker attach attach 一个运行中的 container

docker run 使用 image 创建 container 并执行相应命令,然后停止

docker run -i -t /bin/bash 使用 image 创建 container 并进入交互模式, login shell 是 /bin/bash

docker run -i -t -p 将 container 的端口映射到宿主机的端口

docker commit [repo:tag] 将一个 container 固化为一个新的 image,后面的 repo:tag 可选


docker build
寻找 path 路径下名为的 Dockerfile 的配置文件,使用此配置生成新的 image
docker build -t repo[:tag] 同上,可以指定 repo 和可选的 tag
docker build - 使用指定的 dockerfile 配置文件,docker 以 stdin 方式获取内容,使用此配置生成新的 image

docker port 查看本地哪个端口映射到 container 的指定端口,其实用 docker ps 也可以看到

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计4805字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7999792
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...