文章目录

  • Docker的安装、使用以及常用的镜像命令
    • 一、docker 安装
  • docker 的基本使用
    • 一、docker 中的三大基本概念
      • 1.仓库
      • 2.镜像
      • 3.容器
      • 4.总结
    • 二、docker 镜像相关命令及实例
      • 1.常用镜像仓库
      • 2.搜索镜像
      • 3.拉取镜像
        • 格式
        • 拉取国外镜像
      • 4.查看当前系统上的有哪些镜像
      • 5.获取镜像的详细信息
      • 6.登录镜像仓库
      • 7.为镜像标签
      • 8.镜像上传
      • 9.镜像的删除
      • 10.清空镜像
      • 11.查看镜像历史(镜像的构建历史)
      • 12.保存镜像(commit)
      • 13.导出/导入镜像(export/import)
      • 14.导出/导入镜像(save/load)
      • 15.保存镜像三种方式的区别
      • 16.作业

Docker的安装、使用以及常用的镜像命令

一、docker 安装

# 1、如果之前安装过docker,需要自行卸载
sudo yum remove docker docker-common docker-selinux docker-engine -y# 2、初始化系统环境
sudo yum install -y gcc gcc-c++ yum-utils device-mapper-persistent-data lvm2 wget# 3、安装yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache#  4、安装docker
yum install docker-ce -y --allowerasing# 5、docker优化,配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xj6uu5rz.mirror.aliyuncs.com"]
}
EOF# 6、设置开机自启动
systemctl enable --now docker# 7、检查docker
docker -v# 7、docker命令补全(安装docker后操作)
yum install -y bash-completion
source /usr/share/bash-completion/completions/docker
source /usr/share/bash-completion/bash_completion# docker-compose安装(自动获取最新最稳定的版本)
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#为二进制文件添加可执行权限
chmod +x /usr/local/bin/docker-compose
#创建软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 检查版本
docker-compose -v

docker 的基本使用

一、docker 中的三大基本概念

1.仓库

  • 仓库是用来存放镜像的地方,比如一台计算机

2.镜像

  • 镜像就是启动一个容器的模板,比如一个操作系统

3.容器

  • 容器就是镜像启动起来的一个实例,对外提供服务的进程

4.总结

  • 仓库 < 镜像 < 容器

  • 容器是基于镜像运行的,而镜像是放在仓库里的

  • 凌驾于Linux之上的微型操作系统<微型镜像<微型服务

二、docker 镜像相关命令及实例

1.常用镜像仓库

官方仓库:hub.docker.com
自己的私有仓库:Harbor
阿里云私有仓库:registry.cn-hangzhou.aliyuncs.com

2.搜索镜像

#格式docker search [镜像名称]
# 实例
[root@docker ~]# docker search centos
NAME                        DESCRIPTION                            STARS     OFFICIAL   AUTOMATED
centos                      The official build of CentOS.          6465      [OK]       ···

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4jbTFPgW-1616643956759)(img/1616054667174.png)]

3.拉取镜像

格式

# 格式docker pull [镜像名称]
# 实例
[root@Centos7 ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis# 镜像层
a076a628af6f: Already exists
f40dd07fe7be: Pull complete
ce21c8a3dbee: Pull complete
ee99c35818f8: Pull complete
56b9a72e68ff: Pull complete
3f703e7f380f: Pull complete # 镜像ID号(镜像ID号是全球唯一)
Digest: sha256:0f97c1c9daf5b69b93390ccbe8d3e2971617ec4801fd0882c72bf7cad3a13494# 镜像下载状态
Status: Downloaded newer image for redis:latest # 镜像的全称(镜像的tag)
docker.io/library/redis:latest

拉取国外镜像

用途:可拉取国外镜像,拉下后可重新打一个标签以供使用;
使用方式例:sh pull.sh k8s.gcr.io/coredns:1.7.0

cat > pull.sh <<EOF
#/bin/bash
# 参考:https://cloud.tencent.com/developer/article/1353088
# 用法:pull国外镜像时,命令为:sh /root/pull.sh gcr.io/google-samples/xtrabackup:1.0
image=$1echo $1img=`echo $image | sed 's/k8s\.gcr\.io/anjia0532\/google-containers/g;s/gcr\.io/anjia0532/g;s/\//\./g;s/ /\n/g;s/_/-/g;s/anjia0532\./anjia0532\//g' | uniq | awk '{print ""$1""}'`echo "docker pull $img"docker pull $imgecho  "docker tag $img $image"docker tag $img $image
EOF

4.查看当前系统上的有哪些镜像

# 格式docker images 或者 docker image ls# 参数
-q : 只显示镜像ID
[root@Centos7 ~]# docker images -q
621ceef7494a
f6d0b4767a6c

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v693ifLo-1616643956763)(img/1616055423200.png)]

5.获取镜像的详细信息

# 格式docker inspect [镜像名称或镜像ID]# 参数
-f : 格式化输出
[root@Centos7 ~]# docker inspect -f '{{.Id}}' 621ceef7494a
sha256:621ceef7494adfcbe0e523593639f6625795cc0dc91a750629367a8c7b3ccebb
[root@Centos7 ~]# docker inspect -f '{{.ContainerConfig.Hostname}}' redis
16535cfaf84a

6.登录镜像仓库

# 格式docker login 注: 默认情况下,docker login登录的是官方仓库,如果登录其他镜像仓库则需要指定镜像仓库的URL连接。# 实例[root@Centos7 ~]# docker login registry.cn-hangzhou.aliyuncs.comUsername: yangyang091022Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded[root@Centos7 ~]# cat ~/.docker/config.json {"auths": {"registry.cn-hangzhou.aliyuncs.com": {"auth": "eWFuZ3lhbmcwOTEwMjI6Y2hlbjE4NzkwMDcwODMw"}}}
# 参数
--username|-u : 指定用户名
--password|-p : 指定密码

7.为镜像标签

# 镜像标签的构成
docker.io/library/redis:latest
docker.io  : 镜像仓库的URL
library    :镜像仓库命名空间
redis      : 镜像名称
latest     : 镜像版本号# 打标签# 格式docker tag [镜像ID]  镜像标签
[root@Centos7 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
redis        latest    621ceef7494a   2 months ago   104MB
nginx        latest    f6d0b4767a6c   2 months ago   133MB
[root@Centos7 ~]# docker tag 621ceef7494a registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
[root@Centos7 ~]# docker images
REPOSITORY                                        TAG       IMAGE ID       CREATED        SIZE
redis                                             latest    621ceef7494a   2 months ago   104MB
registry.cn-hangzhou.aliyuncs.com/alvinos/redis   v2        621ceef7494a   2 months ago   104MB
nginx                                             latest    f6d0b4767a6c   2 months ago   133MB

8.镜像上传

# 格式docker push [镜像标签]# 注:要想上传镜像,首先得登录镜像仓库,其次设置对应镜像仓库的tag[root@Centos7 ~]# docker push registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/alvinos/redis]
3480f9cdd491: Pushed
a24a292d0184: Pushed
f927192cc30c: Pushed
1450b8f0019c: Pushed
8e14cb7841fa: Pushed
cb42413394c4: Pushed
v2: digest: sha256:7ef832c720188ac7898dbd8d1e237b0738e94f94fc7e981cb7b8efe84555e892 size: 1572

9.镜像的删除

# 格式docker rmi [镜像名称或者镜像ID]
# 实例[root@Centos7 ~]# docker rmi nginx
# 参数-f  : 强制删除[root@Centos7 ~]# docker rmi -f nginxUntagged: nginx:latestUntagged: nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa# 注:当有容器正在使用镜像时,强制删除镜像,只能删除镜像的所有tag, 不会删除镜像。

10.清空镜像

# 格式docker image prune# 实例[root@Centos7 ~]# docker image pruneWARNING! This will remove all dangling images.Are you sure you want to continue? [y/N] yTotal reclaimed space: 0B# 参数-a : 删除所有镜像[root@Centos7 ~]# docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: redis:latest
untagged: redis@sha256:0f97c1c9daf5b69b93390ccbe8d3e2971617ec4801fd0882c72bf7cad3a13494
untagged: registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
untagged: registry.cn-hangzhou.aliyuncs.com/alvinos/redis@sha256:7ef832c720188ac7898dbd8d1e237b0738e94f94fc7e981cb7b8efe84555e892
deleted: sha256:621ceef7494adfcbe0e523593639f6625795cc0dc91a750629367a8c7b3ccebb
deleted: sha256:de66cfbf4712b8ba9ef292e08ef7487be26d9d21b350548e400ae351405d820e
deleted: sha256:79b2381e35429e8fc04d31b3445f069c22d288bf5c4cba7b7c10004ff78ae201
deleted: sha256:1d047d19be363b00139990d4d7f392dabdb0809dbc9d0fbe67c1f15b8caed27a
deleted: sha256:8c41f4e708c37059df28ae1cabc200a6db2fee45bd3a2cadcf70f2765bb68730
deleted: sha256:b51317bef36fe1900be48402c8a41fcd9cdb6b8950c10209f764473cb8323371Total reclaimed space: 35.04MB
[root@Centos7 ~]# 

11.查看镜像历史(镜像的构建历史)

# 格式docker history [镜像ID或镜像名称]
# 实例
[root@Centos7 ~]# docker history alpine
IMAGE          CREATED        CREATED BY                                      SIZE      COMMENT
7731472c3f2a   2 months ago   /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B
<missing>      2 months ago   /bin/sh -c #(nop) ADD file:edbe213ae0c825a5b…   5.61MB

12.保存镜像(commit)

# 保存正在运行的容器直接为镜像
# 格式:docker commit [容器ID|容器名称]# 实例
[root@Centos7 ~]# docker commit -a "Alvin" -m "这是一个docker镜像" -p be3b92e2886b  test:v1
sha256:4a06cd2af42877b5e2908073061f7ae1bf9e308a470bdfc0c6f906ef368aaed8
[root@Centos7 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
test         v1        4a06cd2af428   5 seconds ago   104MB

13.导出/导入镜像(export/import)

# 导出<<正在运行>>的容器为镜像tar包(不压缩,只打包)
- 只能导出运行中的镜像,需用docker ps命令获取ID号
- 不能导出没运行的镜像## 保存容器为镜像docker export [容器的ID] > [包名称]# 实例[root@Centos7 ~]# docker export be3b92e2886b > redis.tar[root@Centos7 ~]# ll | grep redis-rw-r--r--. 1 root root 104178688 Mar 18 17:30 redis.tar## docker import [包名称] [自定义镜像名称]# 实例,需指定tag标签信息,否则导入后无名[root@Centos7 ~]# docker import redis.tar test:v3sha256:7776db3402fb8d59f6121a3b1977b5e7016f4064cf59218fd1b06637cb0fca87[root@Centos7 ~]# docker imagesREPOSITORY   TAG       IMAGE ID       CREATED         SIZEtest         v3        7776db3402fb   6 seconds ago   101MB

14.导出/导入镜像(save/load)

# 导出镜像为tar包(不压缩,只打包)#save导出,load导入- save导出镜像时,无法自定义镜像名称- save导出镜像时,如果使用ID保存则load导入镜像无名称,导入时只能用ID号来# 导入- save导出镜像时,用名称导出,才能使用名称导入# 导出镜像的格式:docker save [镜像名称|镜像ID] > [包名称]# 例1:包名导出[root@docker ~]# docker save redis > redis.tar[root@docker ~]# ll-rw-r--r--  1 root root 107700224 Mar 19 21:58 redis.tar# 例2:ID号导出[root@docker ~]# ll-rw-r--r--  1 root root 107699200 Mar 19 22:00 redis.tar# 导入镜像的格式:docker load < [包名称]- 若导出的镜像包无名称,则只能用其ID号来导入~# 删除redis原镜像,导入刚到出来的镜像
[root@docker ~]# docker rmi redis
[root@docker ~]# docker load < redis.tar
8e14cb7841fa: Loading layer [==================================================>]  338.4kB/338.4kB
1450b8f0019c: Loading layer [==================================================>]  4.191MB/4.191MB
f927192cc30c: Loading layer [==================================================>]  30.62MB/30.62MB
a24a292d0184: Loading layer [==================================================>]  1.536kB/1.536kB
3480f9cdd491: Loading layer [==================================================>]  3.584kB/3.584kB
Loaded image ID: sha256:621ceef7494adfcbe0e523593639f6625795cc0dc91a750629367a8c7b3ccebb# 查看导入的镜像
[root@docker ~]# docker images
redis                   latest    621ceef7494a   2 months ago   104MB# PS:若导入后名字有误,可以通过ID号来重新打一个标签(重命名),一般不会有问题
<none>                  <none>    621ceef7494a   2 months ago   104MB
[root@docker ~]# docker tag 621ceef7494a redis

15.保存镜像三种方式的区别

  • export/inport

    • 适用于持久化容器(不是镜像),是导出容器当前的操作系统,不包含分层系统,仅包含当前系统中的状态,相当于虚拟机的快照

    • 保存的镜像体积要小于save(但save保存更完全,export保存会丢掉一些不必要的数据)

    • export可以重命名镜像名称而save则不行

  • save/load

    • 可以同时保存多个镜像而export则不行
    • 适用于持久化镜像(不是容器),是保存一个完整的镜像,包含分层系统统一打包,相当于虚拟机的完整模板机

16.作业

  • 使用Dockerfile构建一个LNMP(linux、nginx、mysql、php)

Docker-day1-安装+使用+常用镜像命令相关推荐

  1. Docker(一):Docker的安装与常用命令

    相关阅读: Docker(一):Docker的安装与常用命令 Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit Docker(三):Docker镜像导入与导 ...

  2. Docker下安装MCR windows镜像安装Matlab 静默安装MCR silent install 无交互安装 无Gui安装 控制台安装

    Docker下安装MCR windows镜像安装Matlab 静默安装MCR silent install 无交互安装 无Gui安装 控制台安装 转载请注明出处:https://blog.csdn.n ...

  3. Git的安装以及常用的命令总结

    Git的安装以及常用的命令总结 一.Git的概述 二.Git的安装 三.Git的使用命令 四.Git的分支操作 五.Git团队的协作机制 (一).Git的概述 Git是一个免费的.完全开源的分布式版本 ...

  4. Linux下docker的安装及常用命令

    docker主要是用来管理像MySQL.Tomcat.Nginx等软件的,在安装docker之前,首先保证你的系统里没有老版本docker 清除老版本docker,命令过长,用 \ 分行 sudo y ...

  5. docker下载安装和常用命令

    系列文章目录 前言 官网及下载 https://docker.com/ 一.卸载旧版本docker yum remove docker \docker-client \docker-client-la ...

  6. 【Docker】安装与常用命令

    镜像相当于模板,容器相当于使用模板创建的一台服务器.在本机可以构建/下载很多镜像,比如centos的镜像,mysql的镜像,tomcat镜像,nginx镜像,redis镜像-如果想让镜像跑起来,就需要 ...

  7. centos7安装gitlab_Docker常用镜像安装:MySql Redis GitLab maven私服等

    学习Docker的过程就是安装各种镜像.环境搭建的过程.下面是常用Docker公共镜像的安装方式,记录下来,环境收藏~ 一.安装Mysql 1.创建mysql 下载镜像: docker pull ce ...

  8. docker 20安装教程及常见命令详解

    本文笔记学习来自B站狂神说 视频链接: https://www.bilibili.com/video/BV1og4y1q7M4?p=14 docker安装 先卸载系统之前的老版本docker sudo ...

  9. 1. Docker 基础(概念、镜像命令、容器命令、...)

    官网: https://hub.docker.com/ 文档 官方文档:https://docs.docker.com/ 官方文档:cli指令:https://docs.docker.com/engi ...

  10. docker离线安装并导入镜像

    实际项目开发过程中,客户环境大多是全内网环境,无法连接互联网.这样docker就不能yum在线联网安装,所需要的镜像也不能在线pull下载.这时就需要进行离线安装docker及镜像. 1.下载dock ...

最新文章

  1. iPhone PHP获取文件,IOS中获取各种文件的目录路径的方法
  2. 【教你赚钱】独立开发者荒野求生之道
  3. 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验
  4. 基础语法(IDE:PyCharm)
  5. 在lips追加拣配数量
  6. Cpp 11 / override 和 final 区别
  7. 百信银行基于 Apache Hudi 实时数据湖演进方案
  8. PAT (Basic Level) 1058 选择题(模拟)
  9. python数字从大到小排列_Python练习题 005:三个数字由大到小排序输出
  10. unix修改服务器时间格式,处理unix中的日期格式
  11. 打不开/dev/vmmon:断裂管道_湖北加工管道式自卸除铁器厂家询价咨询_国凯环保设备...
  12. HDU 5985 Lucky Coins 数学
  13. 【Kafka】Elasticsearch 与 Kafka 整合剖析
  14. 华强北耳机检测软件_华强北神器不灵了?肢解500块最强山寨AirPods Pro:虚假降噪背后骗术翻车...
  15. java 水晶按钮_水晶按钮制作 jsp function调用java方法
  16. 工具学习NO5.IAR学习
  17. 微信开发工具实现订阅消息功能
  18. Enzo丨Enzo IHC酶抗原回收试剂解决方案
  19. 2021年度测试行业调查问卷
  20. AngularJS 概述

热门文章

  1. matlab 脉冲频域压缩,大作业-雷达线性调频脉冲压缩的原理及其MATLAB仿真.doc
  2. 优启通制作系统u盘_优启通u盘装系统制作工具
  3. Endnote使用——参考文献的插入及引用
  4. 论文参考文献正确插入方法 (一)
  5. 计算机网络常用五种编码方式,五种常见的基带数字编码方式
  6. matlab面板数据怎么求增长率的公式,环比增长率怎么算公式表格(教你如何计算同比增长率)...
  7. 自动回复html模板邮件,outlook休假自动回复
  8. layui数据表格增加自动换行后,拖动列宽固定列错乱变形
  9. Linux安装JDK步骤
  10. matlab 使用.m文件,matlab 编写M文件(函数)