一.帮助命令
docker version
#
显示
docker
的版本信息。
docker info
#
显示
docker
的系统信息,包括镜像和容器的数量
docker
命令
--help
#
帮助命令
#
帮助文档的地址:
https://docs.docker.com/engine/reference/commandline/build/
二.镜像命令
docker images
#
查看所有本地主机上的镜像 可以使用
docker image ls
代替
解释一下:
#REPOSITORY #
镜像的仓库源
#TAG #
镜像的标签 latest表示最新的版本
#IMAGE ID #
镜像的
id
#CREATED #
镜像的创建时间
#SIZE # 镜像的大小
#
可选项
Options:
-a
,
--all
Show all images (default hides intermediate images)
#
列出所有镜像
-q
,
--quiet
Only show numeric IDs
#
只显示镜像的
id
-aq
#显示所有镜像的
id
docker search
搜索镜像
docker pull
下载镜像
docker pull imageName : version【版本,如果不写版本就下载最新的】
比如下载mysql 镜像【很快就下载玩了】
介绍一下:
Digest:签名【防伪】
docker.io/library/mysql:8.0.20: 真实地址
#
分层下载:
docker image
的核心 联合文件系统 【当我们再去下载 mysql 5.0.8 时会提醒有些东西已经下载过了(共用的部分)】
docker rmi
删除镜像
docker image
rm
- docker rmi -f 镜像id #删除指定的镜像
- docker rmi -f 镜像id 镜像id 镜像id 镜像id#删除指定的镜像
- docker rmi -f $(docker images -aq) #删除全部的镜像 【shell 脚本的知识,可以看我shell的章节】
三.容器命令【常用的】
docker run
镜像
id #
新建容器并启动
docker ps
#
列出所有运行的容器
docker container list
docker
rm
容器
id #
删除指定容器
docker
start
容器
id
#
启动容器
docker
restart
容器
id
#
重启容器
docker
stop
容器
id
#
停止当前正在运行的容器
docker
kill
容器
id
#
强制停止当前容器
所有的命令 docker container
新建容器并启动
docker run [可选参数] image | docker container run [可选参数] image
#参数说明
--name="Name" 容易名字 redis-slave1, redis-slave2用来区分容器的
-d 后台运行【守护进程】
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080(宿主机) :8080(容器)
-p ip : 主机端口 :容器端口
-p 主机端口 : 容器端口
-p 容器端口
容器端口
-P(大写) 随机指定端口
#测试:【版本号要带上哈,没版本号,它找不到 新的会去 docker hub 下载之后在运行的】
exit 从容器退出主机,并关闭容器
用docker ps 查看正在运行的容器【我们已经关闭了,所以没得】
#docker ps
命令
#
列出当前正在运行的容器
- -a, --all Show all containers (default shows just running)
- -n, --last 数量 Show n last created containers (includes all states) // 显示 前面 n 个容器(default -1)
- -q, --quiet Only display numeric IDs
退出容器:
- exit #容器直接退出,并关闭容器
- Ctrl +P +Q # 【按键啊 别打字符哦】退出 但不关闭容器 【进入容器 docker attach 容器id】
删除容器
- docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf
- docker rm -f $(docker ps -aq) #删除指定的容器
- docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器的操作
docker
start
容器
id
#
启动容器
docker
restart
容器
id
#
重启容器
docker
stop
容器
id
#
停止当前正在运行的容器
docker
kill
容器
id
#
强制停止当前容器
四.其他常用命令
#
命令
docker run -d
镜像名【虽然启动了但是没有干事情,守护进程的功能我们在前面介绍过:周期的执行某种事情】
➜
~ docker run
-d ubuntu:18.04
253852f3b9f08ad0a748cca66552b7c76583ed710b43c4c64af8c8983535d80d
➜
~ docker
ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
#
问题
docker ps.
发现ubuntu:18.04
停止了
#
常见的坑,
docker
容器使用后台运行,就必须要有要一个前台进程,
docker发现没有应用,就会自动停止
查看日志
docker logs
--help
Options:
--details
Show extra details provided to logs
*
-f
,
--follow
Follow log output
--since
string Show logs since timestamp (e.g.
2013
-01-02T13
:23:37) or relative (e.g. 42m
for
42
minutes)
* -
-tail
string Number of lines to show from the end of the logs (default
"all"
)
*
-t
,
--timestamps
Show timestamps
--until
string Show logs before a timestamp (e.g.
2013
-01-02T13
:23:37) or relative (e.g. 42m
for
42
minutes)
启动命令后面那一坨 看不懂的 去看看我的shell 编程章节的 循环 https://blog.csdn.net/qq_44065088/article/details/106822774
#
模 拟日志
#
显示日志
-tf
#
显示日志信息(一直更新)
--tail
number
#
需要显示日志条数
docker logs
-t --tail
n
容器
id
#
查看
n
行日志
docker logs
-ft
容器
id
#
跟着日志
查看容器中进程信息 ps
docker top 容器id
查看镜像的元数据
docker inspect
容器
id
➜
~ docker inspect 55321bcae33d
[
{
"Id":
"55321bcae33d15da8280bcac1d2bc1141d213bcc8f8e792edfd832ff61ae5066",
"Created": "2020-05-15T05:22:05.515909071Z",
"Path": "/bin/sh",
...
}
]
➜
~
进入当前正在运行的容器
➜
~
docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
55321bcae33d centos
"/bin/sh -c 'while t…"
10
minutes ago
Up
10
minutes bold_bell
a7215824a4db centos
"/bin/sh -c 'while t…"
13
minutes ago
Up
13
minutes zen_kepler
55a31b3f8613 centos
"/bin/bash"
15
minutes ago
Up
15
minutes lucid_clarke
➜
~
docker exec -it 55321bcae33d /bin/bash
[root@55321bcae33d /]
#
方式二:
docker attach 容器id
从容器内拷贝到主机上
docker cp 容器id:容器内路径 主机目的路径
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
- root@9bfe8760e529:/# cd home/
- root@9bfe8760e529:/home# ls
- root@9bfe8760e529:/home# touch demo.cpp
- root@9bfe8760e529:/home# ls
- demo.cpp
- root@9bfe8760e529:/home# echo hello world >> demo.cpp
- root@9bfe8760e529:/home# cat demo.cpp
- hello world
- root@9bfe8760e529:/home# exit
C:\Users\AIERXUAN>docker cp 9bfe8760e529:/home/demo.cpp G:\dockerInfo
五.小结
学到这里,恭喜你入门了