黑马程序员Docker容器化技术,从零学会Docker教程

可以先看1-13课、以及

docker概述

文章目录

  • docker概述
  • ubuntu安装docker
  • docker架构
  • 配置docker镜像加速器(便于从docker官方下载镜像)
  • docker命令
    • 服务相关命令
      • 启动docker:
      • 查看docker状态:
      • 停止docker:
      • 重启docker:
      • 开机启动docker:
    • 镜像相关命令
      • 查看镜像列表
      • 查看镜像详细信息 inspect
      • 搜索镜像 search
      • 拉取镜像 pull
      • 删除镜像 rmi(i是image镜像的意思)
    • 容器相关命令
      • 创建交互式容器-it、守护式容器-id(通常结合使用-itd)
        • 宿主机:创建容器的主机
      • 退出容器 exit
      • 查看历史退出的容器和正在运行的容器 ps -a
      • 进入后台运行的容器 exec
      • 停止容器 stop
      • 启动容器 start
      • 删除容器 rm
        • 删除所有容器
        • 查看所有容器id
      • 查看容器信息
  • 容器的数据卷
    • 数据卷的概念
      • 三个问题
      • 数据卷
      • 数据卷的作用
    • 配置数据卷(挂载)
      • 基本命令
      • 挂载多个目录
      • 两个容器挂载同一数据卷,实现两个容器数据交换
      • 数据卷容器(用来替代宿主机挂载目录的容器)
      • 数据卷小结
  • docker应用部署——mysql(端口映射)(略)
  • docker应用部署——tomcat(略)
  • docker应用部署——nginx(略)
  • docker应用部署——redis(略)
  • 镜像原理(镜像叠加,分层复用)(rootfs、bootfs)
  • 将容器转换成镜像分享给别人
    • 将容器转换成镜像 commit、save 加载镜像压缩包 load
  • dockerfile概述及关键字


ubuntu安装docker

奇了葩了,我的ubuntu20g竟然死活装不了docker

参考文章:Ubuntu 16.04安装docker详细步骤

另外可参考:Ubuntu 16.04安装docker详细步骤

docker架构

配置docker镜像加速器(便于从docker官方下载镜像)

https://www.bilibili.com/video/BV1CJ411T7BK?p=5&spm_id_from=pageDriver

docker命令

服务相关命令

操作daemon服务
操作image镜像
操作container容器

启动docker:

systemctl start docker

查看docker状态:

systemctl status docker

停止docker:

systemctl stop docker

重启docker:

systemctl restart docker

开机启动docker:

systemctl enable docker

镜像相关命令


查看镜像列表

docker images

如果没有指定版本tag,且版本只有一个就显示为latest

查看镜像详细信息 inspect

docker inspect [镜像id]或[镜像名:TAG]

搜索镜像 search

会去docker hub搜索:https://registry.hub.docker.com/

docker search [镜像名]


最后一个AUTOMATED为自动流程构建

拉取镜像 pull

docker pull [镜像名:版本号]

如果不加版本号,默认就是下载latest

下好了

如果要下其他版本,在docker hub上可以查看对应版本号(注意同一版本号可对应多个版本名)

删除镜像 rmi(i是image镜像的意思)

docker rmi [镜像id]

只删除latest:

docker rmi [镜像名]

删除指定tag镜像:

docker rmi [镜像名:tag]

列出所有镜像id:

docker images -q

删除所有镜像:

docker rmi `docker images -q`

容器相关命令



创建交互式容器-it、守护式容器-id(通常结合使用-itd)

创建并分配终端进入容器(交互式容器):

docker run -it --name=[容器名] [镜像名:TAG]或[镜像id] /bin/bash
  • i表示interactive,后台保持运行;t表示分配一个terminal终端
  • --name后的=可以省略
  • /bin/bash可以省略,默认就是这个

创建容器不进入(守护式容器):(d是daemon的意思,创建守护式容器)

docker run -id --name=[容器名] [镜像名:TAG]或[镜像id]
宿主机:创建容器的主机

退出容器 exit

注意:用it创建的容器,exit后就看不到了

exit

查看历史退出的容器和正在运行的容器 ps -a

(历史退出的容器看不到)

docker ps

-a看得到历史退出的容器)

docker ps -a

进入后台运行的容器 exec

先用docker ps查看后台容器列表,再运行:

docker exec -it [容器名] /bin/bash

停止容器 stop

ps -a查看运行中的容器名,然后:

docker stop [容器名]

启动容器 start

先查看历史容器docker ps -a找到容器名,然后:

docker start [容器名]

删除容器 rm

docker rm [容器名]

docker rm [容器id]

注意:启动中的容器不能被删除

删除所有容器
docker rm `docker ps -aq`
查看所有容器id
docker ps -aq

查看容器信息

一大堆信息:

docker inspect hik_test

容器的数据卷

数据卷的概念

三个问题

  • Docker容器删除后,在容器里的数据还在吗?
  • Docker容器和外部机器可以直接交换文件吗?
  • 容器之间如何进行数据交互?


数据卷

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂载多个数据卷

数据卷的作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

配置数据卷(挂载)

基本命令

docker run -itd --name=[容器名] -v [ubuntu挂载路径]:[docker被挂载路径] [镜像id] /bin/bash


然后可以看懂home下多了hik2.3目录:

然后进入容器创建文件,可看到文件已同步:

挂载多个目录

用多个-v命令就好了

两个容器挂载同一数据卷,实现两个容器数据交换

按上面操作分别创建容器的时候把ubuntu上同一个数据卷目录挂载到不同的容器上去就行了,三个目录都能同步

数据卷容器(用来替代宿主机挂载目录的容器)



只要做好了绑定工作,即使数据卷容器被删除,也不会影响其他容器的共享(每个容器的共享目录仍会同步)

数据卷小结

docker应用部署——mysql(端口映射)(略)

https://www.bilibili.com/video/BV1CJ411T7BK?p=14


相关指令:

docker应用部署——tomcat(略)

docker应用部署——nginx(略)

docker应用部署——redis(略)

镜像原理(镜像叠加,分层复用)(rootfs、bootfs)




将容器转换成镜像分享给别人

将容器转换成镜像 commit、save 加载镜像压缩包 load

commit:

docker commit [容器id] [目标镜像名称:目标tag]

save:(注意保存的时候不建议写镜像id,会导致后面加载的时候缺失镜像名:tag)

docker save -o [镜像压缩名.tar] [镜像id]或[镜像名:tag]

load:

docker load -i [镜像压缩包名.tar]

注意:挂载目录的文件不能写入进镜像里面,其他的都可以

dockerfile概述及关键字

https://www.bilibili.com/video/BV1CJ411T7BK?p=20

看到这,先去搞搞vscode远程docker

后面还有

【docker教程】docker视频教程(ubuntu)数据卷挂载、数据卷容器volume、端口映射(镜像叠加,分层复用)rootfs、bootfs(没看完)相关推荐

  1. docker教程 docker高级命令

    docker高级命令 缘 容器操作 缘 你好! docker已经使用了一段时间了,是时候整理一下docker常使用的高级命令了,小脑瓜不好使,以作备忘. 容器操作 包含部分常用的对容器所做的操作 输出 ...

  2. 解决Windows下无法对docker容器进行端口映射的问题

    解决Windows下无法对docker容器进行端口映射的问题 在安装了一个Windows下安装了docker,并尝试在其中运行Nginx服务,但映射完毕之后,在主机的浏览器中,打开localhost: ...

  3. Docker添加或者更改容器的端口映射

    QUESTION:Docker添加或者更改容器的端口映射? ANSWER: 初学Docker容器,按照教程的基本命令,拉取创建了几个容器,都是在一开始新建的时候 docker  run -p 指定对应 ...

  4. 修改已经创建的docker容器的端口映射

    原始链接:https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-dock ...

  5. 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题

    解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 参考文章: (1)解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 (2)https://www.cnblogs. ...

  6. 解决windows系统无法对docker容器进行端口映射的问题

    解决windows系统无法对docker容器进行端口映射的问题 参考文章: (1)解决windows系统无法对docker容器进行端口映射的问题 (2)https://www.cnblogs.com/ ...

  7. Docker容器修改端口映射

    Docker容器修改端口映射 https://zhuanlan.zhihu.com/p/94949253 对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置 ...

  8. win10 docker 容器修改端口映射

    通常容器生成后是无法通过docker界面或docker命令去修改端口映射的,以下是通过修改配置文件的方式实现: 第一步:在powershell执行以下命令找到容器hash值 docker inspec ...

  9. docker容器增加端口映射最佳实践(修改配置文件方式)

    前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...

  10. docker(8):docker容器的端口映射

    docker(8):docker容器的端口映射 cker的端口映射,能保证在外部网络 访问 同一设备上不同容器时候 不会因为端口问题产生冲突. docker 可将容器对外提供服务的端口映射到 host ...

最新文章

  1. Python PIL : import _imaging _imagingft : No module named _imaging _imagingft(转)
  2. python判断几个数最大最小_python 找出list中最大或者最小几个数的索引方法
  3. VisualStudio中的代码段
  4. 《C#高级编程》笔记系列第三弹
  5. Java-使用反射获取类型信息
  6. (23)npm项目发布
  7. 程序员该如何选择靠谱的创业公司?
  8. 【HTML+CSS网页设计与布局 从入门到精通】第11章-CSS
  9. 三种urllib实现网页下载,含cookie模拟登陆
  10. 从零基础入门Tensorflow2.0 ----一、1.3 实战分类模型(实战回调函数)
  11. Badboy工具:简介,安装,脚本录制
  12. 软件需求分析——需求工程导论
  13. 网上购物系统问题陈述、词汇表与领域类图
  14. Java11完全兼容Java8吗_Java11正式发布,要不要升级请看这里!
  15. C语言 将大写字母转换为小写字母
  16. android Settings之辅助功能
  17. ps5和switch哪个好
  18. 1379690-01-3,3-Azido-D-alanine HCl结构式分享
  19. Python:使用cv2模块快速生成素描
  20. matlab时频分析之短时傅里叶变换 spectrogram

热门文章

  1. 虚拟机磁盘模式的转换
  2. ecshop几个价格
  3. WINDOWS SERVER 2003从入门到精通之DHCP中继代理
  4. android中matrix的单位,Android中canvas和matrix之间的关系是什么?
  5. 【PM模块】操作功能概览
  6. 【PP生产订单】入门介绍(二)
  7. ABAP Version Management
  8. 云技术与云计算的区别
  9. LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing
  10. 如何查看oracle trace 文件