Docker笔记1.0
一、Docker核心概念
1. Docker主机:安装了Docker程序的机器(本地系统WIN、远程服务器);
2. Docker客户端:连接Docker主机进行操作;
3. Docker仓库:用来保存各种打包好的软件镜像;
4. Docker镜像:软件打包成的镜像,放在仓库中;
5. Docker容器:镜像启动后的实例称为一个容器,一个镜像对应一个容器;
使用Docker的步骤:
1. 安装Docker;
2. 去Docker仓库安装镜像;
3. 使用Docker运行镜像,生成Docker容器;
4. 控制容器的启动和停止即可;
二、安装Doctor
1、安装Linux虚拟机
1. VMWare
2. VirtualBox
2、VirtualBox安装
next->next->next...
3、下载阿里的Centos镜像
链接:http://mirrors.aliyun.com/centos/8.3.2011/isos/x86_64/
选择CentOS-8.3.2011-x86_64-dvd1.iso下载
4、VirtualBox安装Centos镜像
1. 新建虚拟电脑,名称随便填,类型Linux,版本选择Other Linux (64-bit),下一步;
2. 分配内存,看着给,下一步;
3. 选择现在创建虚拟硬盘,下一步;
4. 默认,下一步;
5. 默认,下一步;
6. 虚拟硬盘的存放位置和硬盘大小,位置放在空间大的磁盘,大小就用推荐的8GB,点击创建;
7. 找到刚创建好的虚拟电脑,右键设置;
8. 选择网络,设置连接方式为桥接网卡;
9. 点击存储,右侧属性,点击光盘图标,找到下载好的Centos.ios,点击ok;
10. 启动虚拟机,选择第一个,等待...
11. 拉到最底下,选择中文;
12. 点击安装位置,点击完成;
13. 点击根密码,设置密码123456,完成;
14. 点击网络和主机名,点击开启,完成;
15. 开始安装;
16. Contos8关闭和开启图形管理界面
关闭
init 3
开启
init 5
5、xsheel连接Linux
1. 查看ip地址
ip addr
2. xsheel设置连接
6、Linux上装Docker
1. 查看Centos版本,Docker要求Centos系统的内核版本高于3.10
uname -r
2. 安装Docker
yum install docker
3. 启动Docker
Centos8使用此命令会报错,因为它自带docker,不用启动和关闭
systemctl start docker
4. Docker版本
podman -v
7、Docker安装镜像
Centos8使用podman命令替代docker
1、Docker安装镜像步骤(以tomcat为例)
1. 搜索tomcat镜像
podman search tomcat
2. 拉取tomcat镜像
tg代表版本号,不写默认拉取最新版latest
podman pull tomcat:tg
3. 查看已安装的所有镜像
podman images
4. 删除指定的镜像
podman rmi images-id(镜像id)
2、Docker容器操作(以tomcat为例)
1. 生成tomcat容器(生成后会自动运行)
podman run --name mytomcat -d tomcat:latest
--name:自定义容器名称
-d:后台运行
2. 查看运行中的容器
podman ps
3. 查看所有容器(包括未运行的)
podman ps -a
4. 停止运行中的容器
podman stop 容器id或者容器名称(自定义的)
5. 重新启动容器
podman restart 容器id
6. 删除容器
podman rm 容器id
7. 容器端口映射
重新生成tomcat容器,因为上面生成的容器无法在外部访问
podman run --name mytomcat -p 8888:8080 -d tomcat:latest
-p:将主机端口映射到容器的端口 主机端口:容器端口
8. 解决docker访问tomcat端口显示404问题
1. 查看防火墙是否开启
service firewalld status
2. 关闭防火墙
systemctl stop firewalld.service
3. 禁止防火墙开机自启
systemctl disable firewalld.service
4. 进入tomcat容器目录
podman exec -it 容器id /bin/bash
5. 输入ls查看是否存在webapps目录
6. 删除webapps目录
rm -rf webapps
7. 在本目录解压webapps.dist
cp -r webapps.dist webapps
9. 查看容器启动日志
podman logs 容器id
9.解决:Error response from daemon: Cannot restart container xxx: driver failed programming external
重启 docker 服务
systemctl restart docker
3.Docker安装mysql
具体安装镜像就不说了,按照上面安装tomcat操作就行...
1. Docker生成mysql容器
podman run --name mysql001 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest
-e:mysql密码
2. 关于使用navicat连接报错问题
Centos8对于mysql密码加密规则与之前版本的不一样,所有需要做一些修改
1. 运行mysql容器
podman start 容器id
2. 进入mysql容器目录
podman exec -it 容器id bash
3. 打开mysql
mysql -uroot -p123456
注意-p没有空格
4. 修改密码规则和重置密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'
5. 刷新权限,重新使用navicat连接
FLUSH PRIVLEGES
三、Docker遇到的错误及解决方案
1、Docker容器端口映射报错
报错:docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp
解决方案:重启docker即可
systemctl restart docker
2、Docker拉取镜像很慢的问题
使用阿里云镜像加速
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
EOF
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
四、Docker部署SpringBoot项目
1、生成jar包
打开IDE,找到右边的maven->项目名->Lifecycle->package,双击package会自动将项目打包好,文件路径就在项目target文件夹下
2、编写Dockerfile文件
# Docker image for springboot file run
# VERSION 0.0.1
# Author: pibigstar
# 基础镜像使用java 根据自己的环境更换
FROM openjdk:11.0.9
# 作者 随便写
MAINTAINER LTTLJK <3272252730@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为demo1.jar 更名随便换,但与下面的要保持一致
ADD demo-0.0.1-SNAPSHOT.jar demo1.jar
# 运行jar包
RUN bash -c 'touch /demo1.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo1.jar"]
3、生成Docker镜像,启动容器
1. 将打包好的jar包和Dockerfile文件上传到服务器上
Linux上传文件rz
#安装依赖包
yum install -y lrzsz
#上传文件 不能上传文件夹
rz -y #打开文件选择窗口 选择jar包和Dockkerfile
#下载 扩展...
sz 文件名
2. 生成镜像
#-t表示别名 注意后面有个点
docker build -t demo1 .
3. 启动容器并配置好端口
docker run -d -p 8081:8080 demo1
4. 通过访问ip测试是否启动成功