理解:镜像可以理解成一个类,容器就是用这个类new出来的对象,仓库就是放镜像文件的。docker本身是容器运行载体或管理引擎
yum -y install gcc
设置稳定的镜像仓库
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引,使得镜像下载快
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker
docker version
使用hello-world镜像测试docker
本地没有,他会去远程镜像库拉取一个hello-world镜像
docker run hello-world
systemctl stop docker
查看docker概要信息
docker info
设置docker开机启动
systemctl enable docker
查看帮助文档
docker --help
列出本地主机上的镜像
docker images
查看远程镜像库是否有某个镜像
docker search hello-world
拉取镜像到本地
docker pull 镜像名称[:tag]
删除某个镜像
docker rmi 名字或id
docker rmi -f 名字或id
通过docker run 启动容器有一些参数
docker run --name=容器名字
//后台运行容器并返回id
docker run -d
//启动操作容器的终端
docker run -it
//指定端口映射
docker run -p 8080:8080
罗列所有启动着的容器
docker ps
退出容器
在容器控制台输入 exit : 会停止容器
ctrl+p+q : 不会停止容器
停止容器
docker stop id或名字
强制停止
docker kill id或名字
重启容器
docker restart id或名字
删除已经停止的容器
//注意:rmi 是删除镜像
docker rm id
退出了容器,重新进入正在运行的容器交互界面
//一般用这个,输入exit不会停止容器
docker exec -it id bash
docker attach id
将容器内的文件拷贝到主机
docker cp id:容器内路径 主机路径
将容器导出成一个tar
docker export id > 文件名.tar
将tar文件导入为一个镜像
cat 文件名.tar | docker import - 镜像用户/镜像名:版本号
commit镜像(将自己的容器commit到本地镜像库)
docker commit -m="描述信息" -a="作者" 容器id 要创建的目标镜像名:版本
容器运行中可能有重要的数据,为了对数据进行保护,需要进行备份。容器数据卷就是通过映射的方式将容器内的数据备份+持久化到本地主机目录上。主机上修改文件,容器内对应映射也会修改,互通的。
运行一个带有容器卷存储功能的容器
docker run -it --priviledged=true -v /主机绝对路径目录:/容器内目录 镜像
Dockerfile是用来构建镜像文件的文本文件,它可以看做一个清单,docker通过这个清单构建镜像。
Dockerfile指令
编写好Dockerfile文件后,构建镜像
//注意末尾有个点(.)
docker build -t 镜像名字:tag .
当docker容器多了,可以用compose工具来进行管理,需要定义一个yaml配置文件,docker-compose.yaml,写好多个容器之间的调用关系,然后,只需要一个命令就能同时启动和关闭这些容器