Docker镜像操作:
docker images [OPTIONS] [REPOSITORY[:TAG]]: 查看镜像
-a 查看全部镜像(默认隐藏中间的镜像)
-f 根据提供的条件过滤输出
-q 只展示镜像ID
[root@localhost registry-ui]# docker images redis
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest aea9b698d7d1 8 weeks ago 113MB
[root@localhost registry-ui]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 0c6a4257edba 5 hours ago 171MB
nginx latest 605c77e624dd 4 weeks ago 141MB
mysql 8.0 3218b38490ce 5 weeks ago 516MB
redis latest aea9b698d7d1 8 weeks ago 113MB
[root@localhost registry-ui]# docker images -q
144677a32f87
605c77e624dd
3218b38490ce
aea9b698d7d1
[root@localhost registry-ui]# docker images -f "dangling=false"
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 4 weeks ago 141MB
mysql 8.0 3218b38490ce 5 weeks ago 516MB
redis latest aea9b698d7d1 8 weeks ago 113MB
docker rmi [OPTIONS] IMAGE [IMAGE...]: 删除镜像
-f 强制删除镜像(包括运行中的镜像)
docker pull [OPTIONS] NAME[:TAG|@DIGEST]: 拉取镜像,可以从docker-hub上拉取Docker Hub
-a 下载所有版本的镜像到仓库
-q 不展示下载的详细信息
docker save [OPTIONS] IMAGE [IMAGE...]: 将一个或多个镜像保存为一个tar文件
-o 写入文件
[root@localhost vagrant]# docker save -o redis.tar redis:latest
[root@localhost vagrant]# ls
nginx.tar redis.tar
docker load [OPTIONS]: 加载一个镜像从tar文件
-i: 导入镜像
-q: 导入镜像不输出详细信息
[root@localhost vagrant]# docker load -i nginx.tar
Loaded image: nginx:latest
Docker容器操作:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]: 创建容器
--name: 容器名字
-p: 把宿主机的端口映射到容器内的端口
-d: 后台运行然后打印ID
run的命令很多个,举几个例子,大家可以通过docker run --help查看run的几种用法
[root@localhost vagrant]# docker run --name mn -p 80:80 -d nginx
2e620403043262ad59af7679123a4b7ef2b31f29c38ef2cad2d3d3a379bc1d12
docker ps [OPTIONS]:查看所有运行的容器及状态
-a: 查看所有容器,包括没有运行的容器
-f: 根据提供的条件过滤输出
-n:显示n个上次创建的容器(包括所有状态)(默认值-1)
-l: 显示最新创建的容器(包括所有状态)
-q: 展示容器的ID
-s: 展示容器的大小
[root@localhost vagrant]# docker ps -a -f name=redis
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
39bfbdc87009 redis "docker-entrypoint.s…" 7 weeks ago Exited (255) 6 hours ago 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
[root@localhost vagrant]# docker ps -n 1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ef1ce61dccc joxit/docker-registry-ui:static "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp registry-ui_ui_1
[root@localhost vagrant]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ef1ce61dccc joxit/docker-registry-ui:static "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp registry-ui_ui_1
[root@localhost vagrant]# docker ps -q
3ef1ce61dccc
f8fdeb8ca89e
[root@localhost vagrant]# docker ps -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
3ef1ce61dccc joxit/docker-registry-ui:static "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp registry-ui_ui_1 31.3kB (virtual 24.5MB)
f8fdeb8ca89e registry "/entrypoint.sh /etc…" 2 hours ago Up 2 hours 5000/tcp registry-ui_registry_1 0B (virtual 26.2MB)
docker start [OPTIONS] CONTAINER [CONTAINER...]: 启动某个容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]: 停止某个容器
-t: 等待多少秒后停止容器
docker pause CONTAINER [CONTAINER...]: 暂停容器
docker pause CONTAINER [CONTAINER...]: 回复暂停的容器
STATUS
Up 2 hours 正在运行的
Up 12 seconds (Paused) 暂停的
Exited (0) 24 hours ago 停止的
docker logs [OPTIONS] CONTAINER: 查看容器运行日志
-f: 持续输出日志
-n: 从日志末尾显示的行数(默认为“全部”)
-t: 显示时间戳
[root@localhost vagrant]# docker logs mn
2022/01/28 09:27:53 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022/01/28 09:27:53 [notice] 1#1: start worker processes
2022/01/28 09:27:53 [notice] 1#1: start worker process 31
[root@localhost vagrant]# docker logs mn -n 2
2022/01/28 09:27:53 [notice] 1#1: start worker processes
2022/01/28 09:27:53 [notice] 1#1: start worker process 31
[root@localhost vagrant]# docker logs mn -t
2022-01-28T09:27:53.126046187Z 2022/01/28 09:27:53 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022-01-28T09:27:53.126049443Z 2022/01/28 09:27:53 [notice] 1#1: start worker processes
2022-01-28T09:27:53.126053381Z 2022/01/28 09:27:53 [notice] 1#1: start worker process 31
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]: 进入容器执行命令
docker exec -it mn bash 进入mn容器
[root@localhost vagrant]# docker exec -it redis redis-cli
127.0.0.1:6379>
数据卷
docker volume COMMAND: 数据卷
docker volume create html 创建一个html的数据卷
docker volume ls 查看数据卷
docker volume inspect html 查看数据集html的信息
docker volume prune 删除所有数据卷
docker volume rm html 删除html数据卷
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx -v将数据卷html挂载在user/share/nginx/html上