# 常用命令
docker login -u user -p pass xxx.com
docker login -u user -p pass xxx.com --password-stdin < /mnt/docker_password
docker logout xxx.com
cat /root/.docker/config.json # 查看登录信息
docker run -itd --name xxx IMAGE
docker run -itd --name xxx --restart unless-stopped -p 10080:8080 --dns=127.0.0.11 --dns=127.0.0.12 -m 2048M -v /mnt/data/:/mnt/data/ -v /mnt/logs/:/mnt/logs/ xxx.com/nginx:v1
docker pull IMAGE
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker build -t xxx.com/nginx:v1 /mnt/dockerfile_dir
docker push [OPTIONS] NAME[:TAG]
# Create a new image from a container's changes,commit之后再push
docker commit -m="a message" -a="author" CONTAINER xx.com/nginx:v2
docker exec -itd <name> bash
docker ps
docker ps -a
docker ps -a|grep xxx
docker ps | sort -k 2 # sort -k n按第n列排序,以下按第2列排序
# ps显示指定列
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Image}}\t{{.Status}}"
docker stop CONTAINER
docker rm -f CONTAINER
docker inspect <container name>|<container id>
docker stats # 类似top
docker stats [CONTAINER]
docker port CONTAINER
# 清理没有使用的image
docker image prune #Remove unused images
# 清理没有使用和悬虚镜像
docker image prume -a #Remove all unused images, not just dangling ones
# 查看悬虚镜像
docker images -f dangling=true
#悬虚镜像(dangling image)是没有标签的镜像,docker images可看到TAG列显示为<none>,docker构建同名标签时新镜像占用了标签名,旧镜像上的标签被移除了,旧镜像就成了悬虚镜像。
# 查看运行容器的docker run启动参数
yum install -y python-pip
pip install runlike
runlike -p <容器名>|<容器ID>
# e.g. runlike -p nginx #nginx为容器名
# Dockerfile
# WORKDIR 指定工作目录
WORKDIR /mnt/myapp
# 查看容器进程在宿主机的PID
docker top <container>
docker inspect -f '{{.State.Pid}}' <container>
cat /sys/fs/cgroup/memory/docker/<containerId>/cgroup.procs #需要完整容器id,可通过docker ps --no-trunc查看
# 查docker容器日志文件
docker inspect --format='{{.LogPath}}' <container>
# 从系统日志查看是否存在oom(内存溢出)
journalctl -k | grep -i -e memory -e oom
# 从系统日志中查看docker相关日志,docker突然挂掉等情况下可尝试以此方式排查
# -u是指定用户,since和until指定时段
journalctl -u docker -n 1000 --no-page --since "2022-03-09 14:00:00" --until "2022-03-09 23:10:00"
网友评论