2024-06-02 14:50:32
命令解读
- 运行 服务
1 | docker run -d \ # docker起始命令 run 运行(起始命令子命令) -d 让容器在后台运行 |
常见命令
- 拉取镜像
docker pull
- 推送镜像
docker push
- 查看本地镜像
docker images
- 删除镜像
docker rmi
- 本地镜像操作
- 构建镜像
docker build
- 保存镜像
docker save
- 加载镜像
docker load
- 构建镜像
- 运行
docker run
- 停止
docker stop
- 开始
docker satrt
- 停止
- 查看docker进程
docker ps
- 查看全部docker进程
docker ps -a
- 对输出内容进行格式化
docker ps --format
- 查看全部docker进程
- 删除容器
docker rm
- 查看logs
docker logs
- 持续跟踪日志
docker logs -f
- 持续跟踪日志
- 进入容器
docker exec
- 查容器详情
docker inspect
数据卷
- 创建数据卷
docker volume create
- 查看所有数据卷
docker volume ls
- 删除指定数据卷
docker volume rm
- 查看某个数据卷的详情
docker volume inspect
- 清楚数据卷
docker volume prune
DockerFile语法
指定基础镜像
from centos:6
设置环境变量,可在后面指令使用
env key value
拷贝本地文件到镜像的指定目录
copy ./jrell.tar.gz /tmp
执行linux的shell命令,一般是安装过程的命令
run tar -zxvf /tmp/jrell.tar.gz && exports path=/tmp/jrell:$path
指定容器运行时的监听的端口 是给镜像使用者看的
expose 8080
镜像应用中的启动命令,容器运行时调用
entrypoint java -jar xx.jar
举例
1
2
3
4
5
6
7
8
9# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
自定义网络
命令 | 说明 | 文档地址 |
---|---|---|
docker network create |
创建一个网络 | docker network create |
docker network ls |
查看所有网络 | docker network ls |
docker network rm |
删除指定网络 | docker network rm |
docker network prune |
清除未使用的网络 | docker network prune |
docker network connect |
使指定容器连接加入某网络 | docker network connect |
docker network disconnect |
使指定容器连接离开某网络 | docker network disconnect |
docker network inspect |
查看网络详细信息 | docker network inspect |
DockerCompose(实现多容器相互关联)
- 部署命令
docker compose [options] [command]
类型 | 参数或指令 | 说明 |
---|---|---|
Options | ||
-f |
指定compose文件的路径和名称 | |
-p |
指定project名称 | |
Commands | ||
up |
创建并启动所有service容器 | |
down |
停止并移除所有容器、网络 | |
ps |
列出所有启动的容器 | |
logs |
查看指定容器的日志 | |
stop |
停止容器 | |
start |
启动容器 | |
restart |
重新启动容器 | |
top |
查看运行的进程 | |
exec |
在指定的运行中容器中执行命令 |
DockerCompose代码示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44version: "3.8"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
- "./mysql/init:/docker-entrypoint-initdb.d"
networks:
- hm-net
hmall:
build:
context: .
dockerfile: Dockerfile
container_name: hmall
ports:
- "8080:8080"
networks:
- hm-net
depends_on:
- mysql
nginx:
image: nginx
container_name: nginx
ports:
- "18080:18080"
- "18081:18081"
volumes:
- "./nginx/nginx.conf:/etc/nginx/nginx.conf"
- "./nginx/html:/usr/share/nginx/html"
depends_on:
- hmall
networks:
- hm-net
networks:
hm-net:
name: hmall