Docker学习笔记

本文详细介绍了Docker的基础知识,包括Docker的定义、架构、命令行操作(如服务管理、镜像操作和容器操作),以及数据卷的使用方法。此外,还涉及了Dockerfile的原理和概念,以帮助读者更好地理解和部署容器化应用。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本机是用的是ubuntu环境下的docker命令,是以部署UE4云渲染镜像包为目的的docker学习。
提供的视频为centos7的环境,命令会有些许不同。
B站视频学习网址

一、初始docker

1.什么是docker?

Docker是一个开源的应用容器引擎。
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux容器上;容器是完全使用沙箱机制,互相隔离的;性能开销低。


2.Docker架构

镜像(Image):相当于是一个root文件系统
容器(Container):镜像和容器的关系,就像是面对对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等。
仓库(Repository):仓库可以看成一个代码控制中心,用来保存镜像。


3.配置docker镜像加速器

默认情况下,从docker hub上下载docker镜像太慢,一般会配置镜像加速器。
USTC:中科大镜像加速器
阿里云,网易云,腾讯云

二、Docker命令

1.docker服务相关命令

//启动docker服务
sudo service docker start
//停止docker服务
systemctl stop docker
//重启docker服务
systemctl restart docker
//查看docker服务状态
systemctl status docker
//设置开机启动docker服务
systemctl enable docker

2.docker镜像相关命令

sudo看情况加

//查看镜像
sudo docker images
//搜索镜像
docker search 镜像名称
//拉取镜像,不写版本号默认下载最新的
docker pull redis:5.0
//删除镜像
docker rmi xxxx(Image ID)
docker rmi redis:5.0
//删除所有镜像 ``内执行的结果当作docker rmi的参数,docker images -q 查看所用镜像的id
docker rmi `docker images -q`

3.docker容器相关命令

//查看正在运行的容器
docker ps
//查看所有容器(包括已关闭的),STATUS 为Up表示正在运行,Exited表示已关闭
docker ps -a 
//查看所有容器信息的ID
docker ps -aq

参数说明:
-i:保持容器运行,通常与-t同时使用,加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-d:以守护(后台)模式运行容器,创建一个容器在后台运行,需要使用docker exec进入容器。退出后,容器不会关闭。
-it创建的容器一般为交互式容器,-id创建的容器一般称为守护式容器
–name:为创建的容器命名

//创建容器 -i一直运行 -t分配一个终端输入命令 --name=名字 用什么版本 初始指令 (-i -t = -it)
docker run -i -t --name=c1 centos:7 /bin/bash
//-i 一直运行,-d后台运行,不会自动进入容器内部,需要使用命令进入容器,并且进入后退出exit也不会关闭
docker run -id --name=c2 centos:7 
//进入容器
docker exec -it c2 /bin/bash
//启动容器
docker start 容器名称
//停止容器
docker stop 容器名称
//删除容器
docker rm 容器名称或容器ID
//删除所有容器,注意,不能删除正在运行的容器
docker rm `docker ps -aq`
//查看容器信息
docker inspect 容器名称

三、Docker容器的数据卷

1.数据卷的概念及作用

概念:
1)数据卷是宿主机中的一个目录或文件
2)将宿主机中的一个目录与容器中的一个目录挂载,则宿主机中的此目录就可以称为数据卷
3)当容器目录和数据卷目录绑定后,对方的修改会立即同步
4)一个数据卷可以被多个容器同时挂载

作用:
1)容器数据持久化
2)外部机器和容器间接通信
3)容器之间数据交换

2.配置数据卷

1)一个数据卷挂载一个容器

创建启动容器时,使用-v 参数 设置数据卷
docker run … -v 宿主机目录(文件):容器内目录(文件) …
注意事项:
1.目录必须是绝对路径
2.如果目录不存在,会自动创建
3.可以挂载多个数据卷

/root/data:/root/data_container 等同于 ~/data:/root/data_container
只有宿主机可以用~代替/root

docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash
cd ~ //切到根(root)目录下
ll //用来查询当前目录下文件及目录的详情
ls //进入容器后使用可以查看当前文件夹下有的文件(即不包含)
echo 内容 > a.txt //在a.txt文件中增加内容
cat a.txt  //查看a.txt文件中的内容

//同时挂载多个目录,一行的末尾打上 \ 代表命令没敲完,回车后还可以继续敲
docker run -it --name=c2 \
-v ~/data2:/root/data2 \
-v ~/data3:/root/data3 \
centos:7

2)一个数据卷挂载多个容器

同一个数据卷可以挂载在两个不同的容器上,间接地实现两个容器间的通信。

docker run -it --name=c3 -v ~/data:/root/data_container centos:7 /bin/bash
docker run -it --name=c4 -v ~/data:/root/data_container centos:7 /bin/bash

3.数据卷容器

DaraContainer c3 数据卷容器

//1.创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
//2.创建启动c1,c2容器,使用--volumes-from 参数 设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

四、Dockerfile

1.Docker镜像原理

2.Dockerfile概念

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值