centOS8 操作 docker

一、centOS8卸载docker以及删除相关数据(第一次安装直接跳过

1、停止所有容器

sudo docker stop $(docker ps -aq)

 2、删除所有容器

sudo docker rm $(docker ps -aq)

3、删除所有镜像

sudo docker rmi $(docker iamges -q)

4、卸载docker引擎

sudo yum remove docker-ce docker-ce-cli containerd.io

 5、删除docker数据目录

sudo rm -rf /var/lib/docker

二、安装docker

1、利用远程连接工具连接 linux 服务器,当然也可以直接在linux系统上操作。远程工具的话,XTerminal 工具还是比较好用的,远程连接工具可自行下载。

2、安装dnf,dnf是新一代的rpm软件包管理器,也可以使用yum,看自己喜欢用那个

yum -y install dnf

3、安装docker存储驱动的依赖包

dnf install -y device-mapper-persistent-data lvm2

4、添加稳定的docker软件源 

dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 5、安装docker

dnf install -y docker-ce --nobest   # --nobest 意思是安装最符合条件的版本

 6、启动 docker 并查看docker版本

systemctl start docker

docker --version

 7、设置docker开机自启动

systemctl enable docker

8、查看已有的docker镜像

docker images

 首次安装的话,查看docker镜像是这样的

 9、安装镜像,利用pull可以拉取镜像

docker pull 镜像:版本


#如:
docker pull nginx:latest
docker pull node:latest

 利用 docker images命令查看已有镜像

至此,docker安装就完成了!

10、docker 命令:

  • 启动docker服务:systemctl start docker
  • 停止docker服务:systemctl stop docker
  • 重启docker服务:systemctl restart docker
  • 查看docker服务状态:systemctl status docker
  • 开机启动docker服务:systemctl enable docker
  • 查看本地所有镜像:docker images
  • 查看所用镜像的ID:docker images -q
  • 搜索镜像:docker search 镜像名称
  • 拉取镜像:docker pull 镜像名称   #从docker仓库下载镜像的本地,镜像名称格式为:名称:版本号,不指定版本号则是最新的版本,
  • 删除指定本地镜像:docker rmi 镜像ID
  • 删除所有本地镜像:docker rmi 'docker images -q'
  • 查看正在运行的容器:docker ps
  • 查看所有容器;docker ps -a
  • 从指定镜像创建并启动容器:docker run 参数  镜像名

          参数:

           -i:保持容器运行,通常与 -t同时使用

           -t:为容器重新分配一个伪输入终端,通常与 -i同时使用

           -d:以守护(后台)模式运行容器

           -it:创建的容器一般为交互式容器

            -id:创建的容器一般为守护式容器

            --name:为创建的容器命名

             如:docker run -id --name test nginx    #从nginx镜像创建一个名为test的守护容器并运行。

  • 进入容器(新终端):dockers exec -it 容器ID/容器名
  • 进入容器:docker attach 容器ID/容器名
  • 启动容器:docker start 容器ID/容器名
  • 停止容器:docker stop 容器ID/容器名
  • 重启容器:docker restart 容器ID/容器名
  • 获取容器的运行日志:docker logs 容器ID/容器名
  • 查看容器信息:docker inspect 容器名称
  • 删除容器:docker rm 容器ID/容器名   #正在运行的容器必须先停止运行才能删除

三、Docker应用部署

1、docker安装JDK

搜索镜像

docker search openjdk:8

拉取镜像

docker pull openjdk:8

创建一个运行的容器

docker run -id --name=jdk1.8 openjdk:8

进入容器

docker exec -it jdk1.8 /bin/bash

JDK安装成功

2、docker安装mysql数据库

搜索镜像

docker search mysql

拉取镜像

docker pull mysql:8.0.22

创建容器、设置端口映射、目录映射

docker run -id \
 -p 3307:3306 \            
 --name=mysql \
 -v $PWD/conf:/etc/mysql/conf.d \
 -v $PWD/logs:/logs \
 -v $PWD/data:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=root \
 mysql:8.0.22

#参数说明:
-p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs日志目录
-v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的 /var/lib/mysql数据目录
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。

进入容器

docker exec -it mysql /bin/bash

或

docker exec -it mysql bash

初始化数据

将sql文件放到一个目录下

然后将sql文件拷贝到mysql容器中

docker cp /root/app/yinpe-person.sql mysql:/yinpe-person.sql

进入数据库

mysql -uroot -proot

执行 source 命令初始化数据

source sql文件

使用navication工具进行连接测试

3、docker安装redis

搜索镜像

docker search redis

拉取镜像

docker pull redis:latest

查看镜像

docker images

创建挂载目录

mkdir /data/redis/conf
mkdir /data/redis/data

从官网下载redis,将redis.conf配置文件拷贝到conf目录中
修改redis.conf配置文件

#如果要外网访问,请注释掉下面,或者修改为0.0.0.0,保险起见,也可以把protected-mode设置为no
bind 0.0.0.0
protected-mode no

#注意这里要把后台运行设置为no,避免docker后台运行冲突
daemonize no

#注意修改这里的目录为容器内目录,默认reids进来是在/data/目录
dir /data/

#注意修改这里的配置,yes开启持久化,no关闭持久化
appendonly yes


创建并运行容器

 docker run -id -p 6379:6379 --name redis -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data redis:latest

进入容器

docker exec -it redis /bin/bash
或
docker exec -it redis bash

进入redis.conf目录执行命令:redis-server redis.conf 启动redis

测试外部连接redis

redis安装成功

4、docker安装nginx

#搜索镜像
docker search nginx

#拉取镜像
docker pull nginx:latest

#查看镜像
docker images

在linux系统中创建挂载源文件和文件夹

mkdir -p /data/nginx/conf
mkdir -p /data/nginx/html
mkdir -p /data/nginx/logs

创建并运行容器

docker run -id -p 80:80 --name nginx nginx:latest

查看nginx是否部署成功

curl localhost:80    #  :80可省略

进入容器并查看nginx相关配置文件存放位置

#进入容器
docker exec -it nginx /bin/bash

#查看相关配置文件存放位置
whereis nginx

退出容器,将nginx相应的配置文件复制到上面创建的挂载源文件中

#退出容器
exit

#复制相应的配置文件
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /data/nginx/

停止并移除nginx容器

#停止容器
docker stop 容器ID

#移除容器
docker rm 容器ID

重新创建并运行容器,并做目录挂载

docker run -d \

-p 80:80 \

-p 443:443 \

--name nginx \

--restart=always \

-e TZ="Asia/Shanghai" \

-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \

-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \

-v /data/nginx/logs:/var/log/nginx \

-v /data/nginx/html:/usr/share/nginx/html \

-v /data/nginx/cert:/etc/nginx/cert \

nginx:latest

检查是否部署成功

nginx安装完成

5、springboot后端项目部署

将springboot后端项目打包后上传到linux服务器,后端项目打包需要注意服务端口、mysql连接地址、redis连接地址以及其他相关地址。创建Dockerfile文件并编写以下内容:

Dockerfile:

#基础镜像
FROM openjdk
#目录并持久化到docker数据文件夹,springboot内嵌的tomcat容器默认使用/tmp
volume /tmp
#添加自己的项目到app.jar中
add ruoyi-admin.jar /app.jar
#暴露后端端口号
EXPOSE 8080
#运行jar包
run bash -c 'touch /app.jar'
entrypoint ["java","-jar","/app.jar"]

Dockerfile文件和java  jar包必须放在统一目录下

构建镜像

#springboot-app是构建的镜像名称,可随意取,最后的(.)不可少
docker build -t springboot-app .

创建并运行容器

docker run -d -p 8080:8080 --name springbootapp springboot-app

查看日志

docker logs -f -t --tail 1000 springbootapp   #1000是行数  springbootapp是容器名称

springboot后端项目启动成功

6、vue前端项目部署

在前端项目打包时需要注意将vue.config.js中的地址改成后端项目部署好的地址

vue打包后将其上传到服务器,

dist包放在上面配置挂载的html目录下,

修改 /conf.d中的default.conf的

重启nginx容器,前端项目部署成功。

到浏览器访问部署好的项目

至此,大功告成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值