您现在的位置是:首页 >学无止境 >【SpringCloud——Docker】网站首页学无止境

【SpringCloud——Docker】

芃仔 2024-07-09 10:33:08
简介【SpringCloud——Docker】

一、什么是Docker

二、Docker的基本操作

1、Docker操作镜像

镜像名称一般由两部分组成:[repository]:[tag]

在没有指定tag时,默认是latest,代表最新版本的镜像。

 

 

1.1、启动Docker服务

systemctl start docker

 1.2、查看Docker运行状态

systemctl status docker

 1.3、创建镜像

①、本地获取

②、镜像服务器(Docker Registry)获取

docker pull 镜像名称(名称包括服务名和版本,不指定版本时默认最新版)

1.4、查看本地镜像

docker images

 1.5、删除本地镜像

docker rmi 镜像名称/镜像ID

 1.6、推送镜像到镜像服务器(私服)

docker push

 1.7、保存镜像为一个压缩包

docker save -o 保存路径 镜像名称

 1.8、加载压缩包为镜像

docker load -i 文件名称

2、Docker操作容器

2.1、创建容器(运行镜像)

docker run --name 自定义容器名称 -p 端口映射 -d 镜像名称
注意:不同镜像的运行命令存在差异,具体参考官网文档

 以创建一个Nginx容器为例:

2.2、停止容器(杀死进程)

docker stop 容器名

 重启容器:

docker start 容器名

2.3、查看所有容器(运行中)的状态

docker ps

 查看所有容器(运行、挂起、停止):

docker ps -a

2.4、暂停容器(挂起进程)

docker pause 镜像名称

 恢复运行:

docker unpause 镜像名称

 2.5、查看容器运行的日志

docker logs 容器名

 2.6、进入容器内执行命令

docker exec

 案例:

 

 2.7、删除容器(未运行状态)

docker rm 容器名

 删除运行中的容器:

docker rm -f 容器名

3、Docker操作数据卷(容器数据管理)

数据卷(Volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

3.1、数据卷相关操作

 3.2、挂载数据卷

 案例1:

案例2:

 Docker挂载命令:

docker run 
  --name mysql 
  -e MYSQL_ROOT_PASSWORD=123456 
  -p 3306:3306 
  -v /tmp/mysql/conf/hmy.conf:/etc/mysql/conf.d/hmy.cnf 
  -v /tmp/mysql/data:/var/lib/mysql 
  -d 
  mysql:5.7.25

三、自定义镜像/DockerCompose

镜像结构:镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。

 1、什么是DockerFile

2.自定义镜像案例

 DockerFile文件内容:

DockerFile简洁版:

# 指定基础镜像
FROM java:8-alpine

COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

 镜像创建命令:

进入创建好的docker-demo目录输入一下命令:

docker build -t 镜像名称(名字:版本-》例如:javaweb:1.0) .

3、DockerCompose(集群部署)

3.1、DockerCompose的作用

3.2、案例

 DockerCompose文件内容:

version: "3.2"

services:
  nacos:
    image: nacos/nacos-server
    environment:
      MODE: standalone
    ports:
      - "8848:8848"
  mysql:
    image: mysql:5.7.25
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - "$PWD/mysql/data:/var/lib/mysql"
      - "$PWD/mysql/conf:/etc/mysql/conf.d/"
  userservice:
    build: ./user-service
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。