docker日常使用
dokcer命令大全:https://www.runoob.com/docker/docker-command-manual.html
#下载docker
[root@localhost prometheus]# yum install -y docker
#启动并开机启动docker
[root@localhost prometheus]# systemclt enable --now docker
#查看镜像仓库
[root@localhost prometheus]# docker images
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
镜像名称 | 镜像版本 | 镜像编号 | 创建时间 | 镜像大小 |
# 查看版本
yum list docker-ce --showduplicates | sort -r
#导出镜像
[root@localhost prometheus]# docker save -o 导出路径 镜像编号
#导入镜像
[root@localhost prometheus]# docker load -i 镜像路径
#查看容器运行状态
[root@localhost prometheus]# docker top 容器名
#创建基础容器
[root@localhost prometheus]# docker run --name 容器名 --rm -ti busybox /bin/sh
#日常创建容器
[root@localhost prometheus]# docker run --name redcross_jjh_api --network host --restart always -v /data/RedCross/richSaasSysV2/:/app/:rw -tid redcrossapi:1.0 /bin/bash /app/start.sh #创建容器指定名字端口,工作目录,自启动
[root@localhost prometheus]# docker run -itd --name 容器名 -p 8080:8080 -v /etc/nginx/:/app --workdir /etc/nginx/ --restart always --privileged=true 镜像名/版本号
[root@localhost prometheus]# docker run --name 容器名 --network host --restart always -v /data/api/:/app/:rw -tid 镜像名:版本号 /bin/bash /app/start.sh
#查看容器日志
[root@localhost prometheus]# docker logs 容器名
#容器重命名
[root@localhost prometheus]# docker rename 容器编号
#删除容器
[root@localhost prometheus]# docker rm 容器编号
#删除镜像
[root@localhost prometheus]# docker rmi 镜像编号
#查看commit帮助文档
[root@localhost prometheus]# docker commit -h
#查看所有容器
[root@localhost prometheus]# docker ps -a
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
---|---|---|---|---|---|---|
容器编号 | 使用的镜像 | 容器命令 | 创建时间 | 运行状态 | 容器端口 | 容器名称 |
写一个简单的dockerfile |
[root@localhost prometheus]# vim Dockerfile
# 镜像源
FROM IMAGE
# 定义时区参数
ENV TZ=Asia/Shanghai
# 设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
# 定义工作目录
WORKDIR 目录
# 最后启动命令
CMD ["bash","start.sh","&"]
写一个简单的容器启动文件
[root@localhost prometheus]# vim /data/demo1/start.sh
#!/bin/bash
set -eum # 脚本错误时,自动退出,未定义过的变量,则显示错误信息,监听
VERSION=$(cat /目录/new_version)
DATES=$(date "+%Y-%m-%d")
PORTS=8080
gunicorn --bind 0.0.0.0:${PORTS} --worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker \
-w 2 start:app >>logs/日志名-${DATES}.log
[root@localhost prometheus]# docker restart 容器名 #重启容器