热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

01docker的安装与基本使用

docker安装1、如果之前安装过docker,需要自行卸载#1.卸载依赖yumremovedocker-cedocker-ce-clicontainerd.io#2.删除目录rm

docker 安装

1、如果之前安装过docker,需要自行卸载

#1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2.删除目录
rm -rf /var/lib/docker #docker默认的工作路径
#3.镜像加速器(docker优化)
- 登录阿里云找到容器镜像服务
- 找到镜像加速地址
- 配置使用
#4.卸载旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2、初始化系统环境

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3、安装yum源

wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache

4、安装docker

yum install docker-ce -y

5、docker优化

打开阿里云官网 产品 --> 容器与中间件 --> 容器与镜像服务ACR --> 管理控制台 --> 镜像加速器 --> CentOS
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["xxx.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

6、设置开机自启动

systemctl enable --now docker

7、检查docker

# 第一种方式
docker run -d -P nginx
# 第二种方式
docker info

docker 的基本使用


docker 中的三大基本概念


镜像


镜像就是启动一个容器的模板。--->QQ.exe



容器


容器就是对外提供服务的进程。或者容器就是镜像启动起来的一个实例。---->QQ



仓库


仓库是用来存放镜像的地方。



docker 镜像相关命令



  • 常用镜像仓库

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


  • 搜索镜像

    #格式
    docker search [镜像名称]
    # 实例




  • 拉取镜像

    # 格式
    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


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

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




  • 查找筛选镜像

# 收藏量大于500的
[root@docker ~]# docker search -f stars=500 mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 11028 [OK]
docker.io docker.io/mariadb MariaDB Server is a high performing open s... 4178 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 820 [OK]
# 是官方的
[root@docker ~]# docker search mysql -f is-official=true
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 11028 [OK]
docker.io docker.io/mariadb MariaDB Server is a high performing open s... 4178 [OK]


  • 获取镜像的详细信息

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


  • 登录镜像仓库

    # 格式
    docker login
    注: 默认情况下,docker login登录的是官方仓库,如果登录其他镜像仓库则需要指定镜像仓库的URL连接。

    # 实例
    [root@Centos7 ~]# docker login registry.cn-hangzhou.aliyuncs.com
    Username: yangyang091022
    Password:
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    Login Succeeded
    [root@Centos7 ~]# cat ~/.docker/config.json
    {
    "auths": {
    "registry.cn-hangzhou.aliyuncs.com": {
    "auth": "eWFuZ3lhbmcwOTEwMjI6Y2hlbjE4NzkwMDcwODMw"
    }
    }
    }
    # 参数
    --username|-u : 指定用户名
    --password|-p : 指定密码


  • 为镜像标签

    # 镜像标签的构成
    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


  • 镜像上传

    # 格式
    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


  • 镜像的删除

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


  • 清空镜像

    # 格式
    docker image prune
    # 实例
    [root@Centos7 ~]# docker image prune
    WARNING! This will remove all dangling images.
    Are you sure you want to continue? [y/N] y
    Total 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:b51317bef36fe1900be48402c8a41fcd9cdb6b8950c10209f764473cb8323371
    Total reclaimed space: 35.04MB
    [root@Centos7 ~]#


  • 查看镜像历史(镜像的构建历史)

    # 格式
    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
    2 months ago /bin/sh -c #(nop) ADD file:edbe213ae0c825a5b… 5.61MB


  • 保存镜像(commit)

    # 保存正在运行的容器直接为镜像
    # 格式:
    docker commit [容器ID|容器名称]

    # 实例
    [root@Centos7 ~]# docker commit -a "baim0" -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


  • 保存镜像(import/export)

    # 保存正在运行的容器为镜像压缩包
    ## 保存容器为镜像
    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 [包名称] [自定义镜像名称]
    # 实例
    [root@Centos7 ~]# docker import redis.tar test:v3
    sha256:7776db3402fb8d59f6121a3b1977b5e7016f4064cf59218fd1b06637cb0fca87
    [root@Centos7 ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    test v3 7776db3402fb 6 seconds ago 101MB


  • 保存镜像(save/load)

    # 保存镜像为压缩包
    # 保存镜像的格式:
    docker save [镜像名称|镜像ID] > [包名称]
    [root@Centos7 ~]# docker save 7731472c3f2a > apline.tar
    [root@Centos7 ~]# ll
    -rw-r--r--. 1 root root 5888000 Mar 18 17:36 apline.tar
    [root@Centos7 ~]# docker save -o apline-two.tar 7731472c3f2a
    [root@Centos7 ~]# ll
    total 148692
    -rw-r--r--. 1 root root 5888000 Mar 18 17:36 apline.tar
    -rw-------. 1 root root 5888000 Mar 18 17:37 apline-two.tar
    # 导入镜像的格式:
    docker load <[包名称]

    [root@Centos7 ~]# docker load c04d1437198b: Loading layer [========================================>] 5.88MB/5.88MB
    Loaded image ID: sha256:7731472c3f2a25edbb9c085c78f42ec71259f2b83485aa60648276d408865839
    [root@Centos7 ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    7731472c3f2a 2 months ago 5.61MB
    # 注:save/load保存镜像无法自定义镜像名称,save保存镜像时如果使用ID保存则load导入镜像无名称,使用名称导入时才有名称。
    [root@Centos7 ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    busybox latest b97242f89c8a 2 months ago 1.23MB
    [root@Centos7 ~]# docker save busybox:latest > busybox.tar
    [root@Centos7 ~]# ll
    total 150120
    -rw-r--r--. 1 root root 1459200 Mar 18 17:43 busybox.tar
    [root@Centos7 ~]# docker rmi b97242f89c8a
    Untagged: busybox:latest
    Untagged: busybox@sha256:c5439d7db88ab5423999530349d327b04279ad3161d7596d2126dfb5b02bfd1f
    Deleted: sha256:b97242f89c8a29d13aea12843a08441a4bbfc33528f55b60366c1d8f6923d0d4
    Deleted: sha256:0064d0478d0060343cb2888ff3e91e718f0bffe9994162e8a4b310adb2a5ff74
    [root@Centos7 ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    [root@Centos7 ~]# docker load 0064d0478d00: Loading layer [==================================================>] 1.45MB/1.45MB
    Loaded image: busybox:latest
    [root@Centos7 ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    busybox latest b97242f89c8a 2 months ago 1.23MB


  • 保存镜像三种方式的区别

    1、export保存的镜像体积要小于save(save保存更完全,export保存会丢掉一些不必要的数据)
    2、export可以重命名镜像名称而save则不行
    3、save可以同时保存多个镜像而export则不行



原文链接:https://www.cnblogs.com/zhaokunhao/p/14919754.html



推荐阅读
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
author-avatar
Cri_Hello
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有