前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker基础学习笔记总结

docker基础学习笔记总结

作者头像
全栈程序员站长
发布2022-09-22 18:34:33
1K0
发布2022-09-22 18:34:33
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

docker基础笔记

docker命令参考文档:https://docs.docker.com/engine/reference/commandline/cli/?spm=5176.8351553.0.0.4ef81991PzJJbJ

docker命令大全中文版:https://www.runoob.com/docker/docker-command-manual.html

(一)docker安装

docker需要ubuntu的内核是高于3.10命令:uname -r 安装命令: sudo apt-get install docker.io 查看版本:docker –version 启动命令: sudo systemctl start docker 查看状态: sudo systemctl status docker 停止命令: sudo systemctl stop docker 设置和系统一致默认开启:systemctl enable docker 卸载:sudo apt-get remove docker docker-engine docker-ce docker.io

(二)docker架构

client——–Hosts(docker)———registries(docker的镜像仓库) docker镜像:类似于Ubuntu镜像,就是面向对象中的类的含义 docker容器:Ubuntu的具体的实例(运行得到虚拟机),就是面向对象中的对象的含义 仓库:代码控制中心,用于保存镜像 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivfsITmn-1640442215486)(en-resource://database/1400:1)]

(三 )配置docker的镜像加速器

My的地址:每个人的地址不一样 加速器的地址:https://h7zxs7i7.mirror.aliyuncs.com 操作命令:

  1. 安装/升级Docker客户端推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
  2. 配置镜像加速器针对Docker客户端版本大于 1.10.0 的
  3. 用户您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 在Ubuntu下执行下面的命令:
  4. sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-‘EOF’ { “registry-mirrors”: [“https://h7zxs7i7.mirror.aliyuncs.com”] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

配置完成的结果查看(如下则为成功): linux@linux:~$ cat /etc/docker/daemon.json { “registry-mirrors”: [“https://h7zxs7i7.mirror.aliyuncs.com”] }

(四)docker服务相关命令(守护进程命令):同上
(五)docker镜像相关命令:

查看镜像:linux@linux:~ sudo docker images ls 搜索镜像:linux@linux:~ sudo docker search redis (镜像名) 拉取镜像:sudo docker pull redis,或者sudo docker pull redis:版本号 查看需要下载的镜像的版本的地方:https://hub.docker.com/_/redis

删除镜像:sudo docker rmi 镜像ID号

(六)docker容器相关命令

(1)启动容器方法1(交互式容器): linux@linux:~$ sudo docker run -it centos /bin/bash (以命令行方式启动容器)

sudo docker run -itd –name centOS-8 centos /bin/bash 以上可以给容器进行命名:便于 标记和认识 参数说明:-i: 交互式操作。 -t: 终端。 ubuntu: ubuntu 镜像。 /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 要退出终端 直接输入 exit: (2)启动容器方法2(守护式容器): 命令:sudo docker run -itd centos /bin/bash (3)查看运行的容器:docker ps -a

(4)停止容器:sudo docker stop fafc4ddf0843 (容器ID) (5)重启容器:sudo docker restart fafc4ddf0843 (容器ID) (6)进入容器:sudo docker exec -it bfaa0dc5420f(ID) /bin/bash (7)删除容器:sudo docker rm 容器的ID 正在运行的容器不允许删除 (8)查看容器的信息:sudo docker inspect bfaa0dc5420f(ID)

(七)docker的数据卷

概念:宿主机中的一个目录或者文件 理解:相当于一个U盘,可以插在多个电脑上,分别进行编辑,数据不丢失 为什么要数据卷: (1)容器删除了,数据还存在吗?解决问题:容器数据的持久化 (2)容器和外部如何通信的呢? 解决问题:外部数据和容器之间的通信 (3)容器之间的通信如何操作呢?解决问题:数据卷容器之间的通信

创建方法:docker run -v 宿主机的目录:容器的目录 例子: docker run -itd –name centOS1(名字)**** -v /home/CCM:/home/ccm_container**** centos(镜像)/bin/bash 可以挂载多个目录

docker run -itd –name centos1 -v /home/CCM:/home/ccm centos /bin/bash

在创建时就需要挂载目录,能否先创建,再进行挂载呢? 数据卷容器: 作用:多容器之前的数据交互 创建:docker run -itd –name=c3 -v /volume centos 挂载容器:docker run -itd –name=c1 –volume-from centos(镜像) /bin/bash 这样就将C3容器和C1容器进行了管理,形成了数据卷容器

(八)应用部署

部署步骤: 1.搜索镜像 2.拉取镜像 3.创建容器 4.操作软件 (1)MySQL安装 部署方式:将MySQL的端口从容器中映射出来,提供给外部的进行访问(端口映射) 参考连接:https://www.runoob.com/docker/docker-install-mysql.html

(九)Dockerfile

(1)镜像的本质是什么? 本质是分层的文件系统(特殊的文件系统叠加而成的) (2)为什么ubuntu镜像只有200M,而MySQL却有500M Ubuntu基于宿主机的文件系统,而MySQL需要在宿主机上进一步的安装新的文件系统(夫镜像),并在新的文件系统上再次安装MySQL,就会导致文件的大小发生变化

MySQL(应用,docker镜像) | JDK(应用镜像) | rootfs (基础镜像) | bootfs(宿主机镜像) 以上的好处:增加复用性

容器转换成镜像

命令:docker commit 5c8a157b826(源镜像IP) redis1225(新的镜像名):1.1(镜像的版本号) docker save -o 压缩文件名称 镜像名称:版本号 打包的镜像 docker load -i 压缩文件名称 解压缩文件镜像 file文件的书写: 具体的里面的每个关键字: https://www.runoob.com/docker/docker-dockerfile.html 构建镜像: docker build -t nginx:v3 . docker build -f ./centOS8_dockerfile -t centos:1.0 . 文件的内容: FROM centos:latest MAINTAINER author:CCM,time:1225 RUN yum -y install python && yum -y install vim && usradd CCM_dockerfile_cmd_test && touch /home/docker_123_test && mkdir -p /home/CCM/CCM2/CCM3 CMD /bin/bash ADD命令用来将自定义的软件添加到docker镜像中,得到的镜像就是包含了打包的软件的

(十)Docker的服务编排
(十一)私有仓库

私有仓库也是一个镜像,也可以执行镜像的操作 拉取私有仓库:docker pull registry 运行:docker run -itd –name=registry -p 5000:5000 registry 测试成功结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CzjOseAG-1640442215487)(en-resource://database/1402:1)]

上传镜像至私有仓库: 配置文件:vi /etc/docker/daemon.json,增加一条信任的信息 “insecure-registries”:[“192.168.5.133:5000”] 标记镜像为私有仓库镜像: docker tag redis1225:1.1 192.168.5.133:5000/redis1226:版本号 redis1225:1.1 需要给镜像加上版本号,否则是最新的镜像 完成本步骤后,得到ID是一样的,镜像名不一样 上传命令: docker push 192.168.5.133:5000/redis1226 镜像的名字 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dYO1XHmD-1640442215488)(en-resource://database/1404:1)] 上传结果在WEB端查看:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6svBI93-1640442215488)(en-resource://database/1406:1)]

私有仓库的镜像的拉取: docker pull 镜像名 需要加上设备的IP的端口号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qbp2aWgR-1640442215489)(en-resource://database/1408:1)]

(十二)容器和虚拟机的比较

相同点:具有相同的资源隔离和资源分配优势 差异点:传统虚拟机可以运行不同的操作系统,容器只能运行宿主机类似的操作系统 启动时间差异大,容器启动时间短,虚拟机时间长 性能使用不一样,容器接近宿主机原生的性能 系统支持的数量不一样,支持近1000个容器,虚拟机近10来个虚拟机

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168445.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker基础笔记
    • (一)docker安装
      • (二)docker架构
        • (三 )配置docker的镜像加速器
          • (四)docker服务相关命令(守护进程命令):同上
            • (五)docker镜像相关命令:
              • (六)docker容器相关命令
                • (七)docker的数据卷
                  • (八)应用部署
                    • (九)Dockerfile
                      • 容器转换成镜像
                    • (十)Docker的服务编排
                      • (十一)私有仓库
                        • (十二)容器和虚拟机的比较
                        相关产品与服务
                        容器服务
                        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档