【docker教程】docker视频教程(ubuntu)数据卷挂载、数据卷容器volume、端口映射(镜像叠加,分层复用)rootfs、bootfs(没看完)
黑马程序员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(没看完)相关推荐
- docker教程 docker高级命令
docker高级命令 缘 容器操作 缘 你好! docker已经使用了一段时间了,是时候整理一下docker常使用的高级命令了,小脑瓜不好使,以作备忘. 容器操作 包含部分常用的对容器所做的操作 输出 ...
- 解决Windows下无法对docker容器进行端口映射的问题
解决Windows下无法对docker容器进行端口映射的问题 在安装了一个Windows下安装了docker,并尝试在其中运行Nginx服务,但映射完毕之后,在主机的浏览器中,打开localhost: ...
- Docker添加或者更改容器的端口映射
QUESTION:Docker添加或者更改容器的端口映射? ANSWER: 初学Docker容器,按照教程的基本命令,拉取创建了几个容器,都是在一开始新建的时候 docker run -p 指定对应 ...
- 修改已经创建的docker容器的端口映射
原始链接:https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-dock ...
- 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题
解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 参考文章: (1)解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 (2)https://www.cnblogs. ...
- 解决windows系统无法对docker容器进行端口映射的问题
解决windows系统无法对docker容器进行端口映射的问题 参考文章: (1)解决windows系统无法对docker容器进行端口映射的问题 (2)https://www.cnblogs.com/ ...
- Docker容器修改端口映射
Docker容器修改端口映射 https://zhuanlan.zhihu.com/p/94949253 对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置 ...
- win10 docker 容器修改端口映射
通常容器生成后是无法通过docker界面或docker命令去修改端口映射的,以下是通过修改配置文件的方式实现: 第一步:在powershell执行以下命令找到容器hash值 docker inspec ...
- docker容器增加端口映射最佳实践(修改配置文件方式)
前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...
- docker(8):docker容器的端口映射
docker(8):docker容器的端口映射 cker的端口映射,能保证在外部网络 访问 同一设备上不同容器时候 不会因为端口问题产生冲突. docker 可将容器对外提供服务的端口映射到 host ...
最新文章
- Python PIL : import _imaging _imagingft : No module named _imaging _imagingft(转)
- python判断几个数最大最小_python 找出list中最大或者最小几个数的索引方法
- VisualStudio中的代码段
- 《C#高级编程》笔记系列第三弹
- Java-使用反射获取类型信息
- (23)npm项目发布
- 程序员该如何选择靠谱的创业公司?
- 【HTML+CSS网页设计与布局 从入门到精通】第11章-CSS
- 三种urllib实现网页下载,含cookie模拟登陆
- 从零基础入门Tensorflow2.0 ----一、1.3 实战分类模型(实战回调函数)
- Badboy工具:简介,安装,脚本录制
- 软件需求分析——需求工程导论
- 网上购物系统问题陈述、词汇表与领域类图
- Java11完全兼容Java8吗_Java11正式发布,要不要升级请看这里!
- C语言 将大写字母转换为小写字母
- android Settings之辅助功能
- ps5和switch哪个好
- 1379690-01-3,3-Azido-D-alanine HCl结构式分享
- Python:使用cv2模块快速生成素描
- matlab时频分析之短时傅里叶变换 spectrogram