上路抗压,野爹常来

Docker基础使用

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测试是否启动成功

posted @ 2021-01-03 12:23  上路抗压  阅读(1087)  评论(0编辑  收藏  举报