【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服务启动:service d
- 下一篇: docker run与docker st