一、什么是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"