Docker命令回顾及构建一个镜像

一、命令回顾以及截图

1
2
# 查看所有镜像
docker images

image-20241119203946550

1
2
# 查看运行着的容器
docker ps

image-20241119204143535

1
2
# 显示所有容器,包括停止的容器
docker ps -a

image-20241119204503998

1
2
# 不截断显示
docker ps -a --no-trunc

image-20241119204758217

1
2
3
4
5
# 拉去镜像
docker pull redis:latest

# 拉去指定仓库镜像
docker pull registry.cn-hangzhou.aliyuncs.com/loltoulan-dcoker/loltoulan:v5

image-20241119205201844

image-20241119205425594

1
2
# 停止运行着的镜像,优雅停机,当前正在运行中的程序处理完所有事情后再停止
docker stop 0e6

image-20241119205540775

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 停止指定镜像
docker stop f2e893be37ff

# 停止指定Id的镜像
docker stop 6d683af76818 0d1af0053ed4

# 停止所有镜像
docker stop $(docker ps -aq)

# 停止镜像名为 redis的所有镜像
docker stop $(docker ps -q --filter ancestor=redis)

# 10s后停止镜像
docker stop -t 10 c3848a05d7ae

image-20241119212103511

image-20241119212421633

image-20241119212724288

1
2
# 类似 kill -9,直接杀死正在运行着的容器
docker kill 0e6

image-20241119210021978

1
2
3
4
# 重启镜像
docker restart 0e
docker start 0e
docker restart $(docker ps -aq)

image-20241119205636851

image-20241119212237157

1
2
3
4
5
6
7
8
# 启动一个镜像,指定暴露的端口号,指定容器名称
docker run -d --name myredis5 -p 6379:6379 -p 8888:6379 redis:latest

# 启动一个镜像,随机端口号,指定容器名称
docker run -d --name myredis6 -P redis:latest

# 启动一个镜像,随机端口号,随机容器名称
docker run -d -P redis:latest

image-20241119211156934

1
2
# 进入指定容器的 /bin/bash
docker exec -it c3848a05d7ae /bin/bash

image-20241119213018729

1
2
3
4
5
6
7
8
# 将镜像打一个tag
docker tag busybox:stable-uclibc registry.cn-hangzhou.aliyuncs.com/loltoulan-dcoker/busybox:v2

# docker 登录
docker login --username=loneyssio registry.cn-hangzhou.aliyuncs.com

# docker推送
docker push registry.cn-hangzhou.aliyuncs.com/loltoulan-dcoker/busybox:v2

image-20241119215448519

image-20241119215528146

1
2
3
4
5
6
7
8
9
10
11
12
# 将镜像保存为tar包
docker save -o busybox.tar busybox:stable-uclibc

# 删除镜像,可以类比 docker stop 的操作
docker rmi busybox:stable-uclibc

docker rm $(docker ps -aq)

docker rmi $(docker images -aq)

# 将tar包加载为镜像
docker load -i busybox.tar

image-20241119220405738

二、Docker构建一个镜像以及改镜像的运行

首先,写一个Dockerfile文件

1
2
3
4
5
6
7
8
FROM alpine

LABEL maintainer="loltoulan@gmail.com"

RUN echo 111

CMD sleep 10;echo success

image-20241119221545798

1
2
# 通过 docker build 构建一个镜像
docker build -t mydocker:v1 -f Dcokerfile1 .

image-20241119221706293

1
docker images

image-20241119221829406

1
2
# 运行该docker镜像
docker run -d --name mydocker1 mydocker:v1

image-20241119222006650