安装docker
安装镜像
在远程连接控制器终端输入以下代码:
如果连接的是腾讯云的服务器,直接到docker服务 ps:如果你的服务器已经有重要的运行容器或者是镜像,不要不要不要!随便使用yum
update 会服务器雪崩!!!
解决问题: linux服务器上安装docker服务----解决docker:command not found 的问题
CentOS系统
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl start docker
systemctl enable docker
//1.更新yum包
//2.安装依赖软件包
//3.设置yum源
//4.安装docker
//5.启动docker服务
//6.设置开启自启动
docker服务命令
systemctl start docker
开启docker服务
systemctl stop docker
关闭docker服务
systemctl status docker
查看docker服务的状态
systemctl enable docker
默认开机自动启动的docker服务
docker镜像命令
查看镜像(本地进行查看)
docker images
docker images -q(只是查看id)
删除镜像(本地进行删除)
docker rmi 镜像id
docker rmi 镜像名称:版本号
搜索镜像(在远程仓库进行搜索)
docker search 镜像名称(例如:mysql,centos,nginx)
拉取镜像(远程仓库下载到本地)
docker pull mysql :版本号
docker pull mysql (默认是最新版本号)
docker容器命令(重要)
查看运行容器
docker ps
查看所有容器
docker ps -a
创建容器
docker run -it --name=容器名称(自己命名) 镜像名称:镜像版本 号 /bin/bash
docker run -it --name (空格) 容器名称(自己命名) 镜像名称:镜像版本 号 /bin/bash
-it是创建的交互式:创建完成之后直接进度终端
-id是创建守护式:创建完成之后不进入容器
-it创建的容器exit,后台不会继续运行
-id创建的容器exit,后台继续运行
进入容器
docker exec -it 容器名称 /bin/bash
启动容器
docker start 容器名称
停止容器
docker stop 容器名称
删除容器
docker rm 容器名称
查看容器信息
docker inspect 容器名称
退出容器
exit
容器的数据卷
数据卷概念:宿主机里面的一个文件或者是目录
容器目录和数据卷目录绑定之后,对方的修改会进行绑定
一个数据卷可以被多个容器同时挂载
持久化
外部通信
内部交互
配置数据卷:
数据内容(持久化)
docker run -it --name=centos7 -v /root/data:/root/data_container
centos:latest /bin/bash
cat 文件名//查看文件内容
touch 文件名 //创建文件名
echo 内ring数据 > 文件名 //向文件中写入内容
即使容器删除数据依然存在
docker run -it --name=centos8 -v /root/data:/root/data_centos8
centos:latest /bin/bash
(两个容器挂在同一个数据卷)
绝对路径
数据卷容器
配置数据卷容器
docker run -it --name=c3 -v /volume centos:latest /bin/bash
docker run -it --name=c32 --volumes-from c3 centos:latest
docker应用部署
mysql部署
步骤
- 搜索mysql镜像
- 拉取mysql镜像
- 创建容器
- 操作容器中的mysql
镜像的原理 操作系统的组成部分
linux bootfs 里面有内核的设置
rootfs 两部分 根目录的部分
docker镜像----特殊的文件系统叠加而成
bootfs----且使用宿主机的bootfs----内服复用
基础的被别人所用 底层基础镜像 父镜像
可写容器 在最上层 新的镜像
本质:分层文件系统 只读只是上面的最上一层的数据
//容器
docker run -it --name=c2 centos:latest /bin/bash
docker run -it --name=c3 -v /root/data:/root/data_c3 centos:latest
/bin/bash 数据卷docker run -it --name=c4 -v /volume centos:latest /bin/bash 数据卷容器
docker run -it --name=c5 --volumes-from c4 centos:latest
/bin/bash数据卷容器链接
docker exec -it 容器名称 /bin/bash 运行容器设置
打包镜像
容器打包成为镜像
docker commit [容器id] [自定义镜像名称]:[自定义版本号]
docker save -o 压缩文件名称 被压缩的镜像名称: 版本号
docker load -i 压缩文件名称
docker ps -a
容器转换成为镜像
docker commit 容器id tomcat11:1
ls touch echo cat
docker save -o itheima.tar itheima:1.0//压缩文件镜像
docker load -i itheima.tardocker commit id newname :newversion
docker save -o name.tar name:version
docker load -i name.tar //解压
dockerfile文本文件:
基础镜像构造新的新的镜像设置
//服务编排
微服务若干个微服务 批量管理容器
docker compose部署工具
docker-compose.yml
docker-compose up 启动应用
FROM openjdk:8//父镜像
MAINTAINER itheima13852027858@163.com//作者
EXPOSE 3016//端口号
ADD /target/back-0.0.1-SNAPSHOT.jar back-0.0.1-SNAPSHOT.jar//添加包
ENTRYPOINT exec java -jar back-0.0.1-SNAPSHOT.jar//执行包
构建对应的镜像
vim 编辑文件
docker build -f ./springboot_dockerfile -t app.
docker run -id -p 9000:8080 app(镜像名称)端口映射
部署springboot项目
vi /vim 编辑命令
镜像制作
容器转为镜像 这样的话可以将之前封装的多需要的容器设置成全面的镜像 进而在进行容器的创建
docker commit [容器id] [自定义镜像名称]:[自定义版本号]
docker save -o 压缩文件名称 被压缩的镜像名称: 版本号
docker load -i 压缩文件名称