day54-docker容器常用命令-数据卷-自定义镜像

1. ✅查看容器日志

  • 查看容器运行情况
  • 服务启动失败日志提示
docker logs
注意事项;
1.查看所有日志
2.添加选项
选项:
1.查看最后20行日志
docker logs -n 20 ngx_v1

2.查看日志的实时更新
docker logs -n 20 -f ngx_v1

3.查看最近1小时日志
docker logs -f --since "1h" ngx

2. ✅运行mysql容器

# 运行容器
docker run --name mysql8.0 -p 3306:3306 -p 33060:33060 -d mysql:8.0-debian

# 查看运行中的容器
docker ps

# 查看所有的容器
docker ps -a

# 查看容器的日志
docker logs -n 20 mysql8.0


# 运行容器时指定变量
docker rm mysql8.0
docker run --name mysql8.0 -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=1 -d mysql:8.0-debian

# 查看运行中的容器
docker ps

3. ✅容器的开机自启动

3.1. 🌟容器自启动规则

默认是:no
指定容器关闭后自动启动容器: always
unless-stopped 容器关闭了,才会自动重启
no-failure 容器失败了,才会自动重启
  • 容器的开机自启动规则 --restart通过docker run的时候指定
# 运行容器指定自启动规则
docker run --name mysql_v1 -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=1 --restart always -d mysql:8.0-debian

# 查看容器的开机自启动规则
docker inspect mysql_v1 |jq '.[].HostConfig.RestartPolicy.Name'

# 重启docker服务
systemctl restart docker

# 查看docker是否自启动
docker ps

  • 修改已经创建的容器的重启规则
# 查看容器的重启规则
docker inspect mysql_v1 |jq '.[].HostConfig.RestartPolicy.Name'

# 修改mysql8.0
docker update --restart no mysql_v1

# 查看容器的重启规则
docker inspect mysql_v1 |jq '.[].HostConfig.RestartPolicy.Name'

4. ✅查看容器信息与状态

# 查看所有运行中的容器的信息
docker stats

# cpu和内存使用情况,使用率
net io (网络读写),block io(磁盘读写)情况

# 查看整体进程信息
docker top 容器名字

# 查看线程信息,选项是ps命令选项
docker top 容器 -efL
dockker top 容器 aux

5. ✅启动linux系统容器

  • 未来自定义镜像使用
dockker run -d --name debian_bullseye debian:bullseye
现象:直接启动系统容器发现无法启动
原因:容器启动后没有进程阻塞住这个容器

阻塞:容器中要有某个进程(命令),一致运行

解决:

docker run -itd --name debian debian:bullseye /bin/bash
其他服务
nginx -g 'daemon off;'
  • docker exec vs attach(几乎不用)
  • attach取消的时候结束容器

6. ✅docker端口映射

-p 宿主机端口:容器端口
-p 多个端口映射 -p -p -p

-p 8000-8002:80-82 有规律的映射,本质是 -p -p -p

-P(大写)随机映射
docker run -d --name ngx -P nginx:1.24

7. ✅docker数据卷(数据持久化)

  • -v (--volume) 容器与宿主机连接上(映射)
  • 数据库数据
  • 配置文件(推荐自定义镜像)
1.创建数据卷目录
mkdir -p /app/mysql/data/

2.创建容器,并设置数据卷,数据卷目录没有创建时会自动创建
docker run -d --name db8.0 -p 3306:3306 -p 33060:33060 --restart always -v /app/mysql/data/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=1 mysql:8.0-debian

3.进入容器并创建数据库
docker exec -it db8.0 mysql -uroot -p1
create databases zhu01;
create databases zhu02;
create databases zhu03;

4.删除容器
docker rm db8.0 -f

5.运行容器
docker run -d --name db8.0 -p 3306:3306 -p 33060:33060 --restart always -v /app/mysql/data/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=1 mysql:8.0-debian

6.进入容器并查看数据库
docker exec -it db8.0 mysql -uroot -p1
show databases;

8. ✅自定义镜像

  • 需求:官方镜像缺少配置,代码,官方镜像无法直接满足需求,通过自定义镜像方式实现

8.1. 🌟自定义小鸟飞飞镜像

  • 站点代码和配置文件复制到镜像中
bird.tar.gz

server {
  listen 80;
  server_name bird.zhubl.xyz;
  root /app/code/bird/;
  location / {
    index index.html;
  }
  location ~* \.(html|js|css)$ {
    expires 1d;
  }
  location ~* \.(jpg|jpeg|bmp|gif|png)$ {
    expires max;
  }
}

  • 浏览器访问
http://10.0.0.81:80

  • 将容器生成镜像
docker commit bird_nginx_1.24 web:bird_v1

  • 导出镜像
docker image save web:bird_v1 |gzip >web-bird_v1.tar.gz

  • 导入镜像
docker load -i web-bird_v1.tar.gz

9. ✅总结

  • docker容器指令
  • 端口映射,数据卷挂载
  • 自定义镜像(手动commit)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱包林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值