docker命令汇总
docker命令汇总
序号 |
类别 |
简述 |
命令 |
功能 |
说明 |
1 |
整体管理 |
安装 |
yum install docker-engine |
centos上安装docker |
Ubuntu上安装docker |
2 |
整体管理 |
版本 |
docker version |
查看docker版本 |
|
3 |
整体管理 |
状态 |
systemctl status docker.service |
查看docker服务状态 |
|
4 |
整体管理 |
开机启动 |
systemctl enable docker.service |
设置docker开机启动 |
|
5 |
整体管理 |
启动 |
systemctl start docker.service |
启动docker服务状态 |
|
6 |
整体管理 |
关停 |
systemctl stop docker.service |
关停docker服务 |
|
7 |
整体管理 |
重启 |
systemctl restart docker.service |
重启docker服务 |
systemctl restart docker |
8 |
整体管理 |
重载 |
systemctl daemon-reload |
修改docker配置文件后,重载配置 |
需要重启 |
镜像 |
远程搜索镜像 |
docker search lamp |
远程镜像仓库中,搜索lamp的镜像 web界面的docker仓库 |
注意:这个命令不靠谱,不一定搜到得到。我想寻找一个星级较高的mobsf镜像,通过如下命令搜索不到: docker search mobsf 需要通过已知的替代关键词opensecurity才能搜索到: docker search opensecurity |
|
9 |
镜像 |
镜像列表 |
docker images |
查看本地docker镜像 |
|
10 |
镜像 |
镜像详情 |
docker inspect 47b19964fb50 |
通过镜像的唯一标识ID,查看镜像详情 |
|
11 |
镜像 |
标签 |
docker tag ubuntu ubuntu-local:ubu-latest |
为本地镜像添加新的tag标签(公有仓库的准备) |
|
12 |
|
标签 |
docker tag redis 10.1.2.3:5000/redis |
为本地镜像添加新的tag标签(私有仓库的准备) |
将原来(REPOSITORY)名为10.1.2.3:5000/docker/ubuntu,(tag)标签为latest的image本地镜像, |
13 |
镜像 |
镜像存出为文件 |
docker save -o newmi nickistre/centos-lamp |
存出镜像 |
newmi:新镜像文件的名称 |
14 |
镜像 |
文件载入为镜像 |
docker load < newmi |
文件载入为镜像 |
|
15 |
镜像 |
文件载入为镜像 |
docker load --input newmi |
文件载入为镜像 |
|
16 |
镜像 |
删除镜像 |
docker rmi ubuntu-local:ubu-latest |
根据标签删除镜像 |
|
17 |
镜像 |
删除镜像 |
docker rmi 47b19964fb50 强制删除镜像-f docker rmi -f 47b19964fb50 |
根据镜像的唯一标识ID删除镜像,将删除所有为该ID的镜像 |
|
|
|
||||
19 |
镜像 |
远程下拉获取镜像 |
docker pull nickistre/centos-lamp |
下拉获取镜像(官方公共仓库) |
|
20 |
镜像 |
远程上传镜像 |
docker push daoke/lamp:centos7 |
远程上传镜像(官方私有仓库) |
|
21 |
镜像 |
远程上传镜像 |
docker push 10.1.2.3:5000/redis |
远程上传镜像(个人私有仓库) |
|
22 |
容器 |
容器列表 |
docker ps -a |
查看所有容器 |
|
docker ps -a -q |
查看所有容器的docker ID(包括up和exit的) |
||||
23 |
容器 |
容器列表 |
docker ps |
查看所有正在运行的容器(只有up的) |
|
容器 |
修改容器名称 |
docker rename old_name my_new_name |
修改容器名称。默认容器名称是系统随机给定 |
||
容器 |
查看容器输出日志 |
docker logs -f gitlab14 docker logs --tail 20 -f 容器id |
查看某个容器的日志20行的实时日志。 |
docker logs 详见:https://blog.csdn.net/jiangyu1013/article/details/96147534 |
|
24 |
容器 |
创建容器 |
docker create -it ubuntu:latest /bin/bash |
创建容器 |
-i 表示让容器的输入保持打开 |
25 |
容器 |
启动容器 |
docker start 3aa2cee9c0c0 |
启动容器 |
|
容器 |
关停容器 |
docker stop 3aa2cee9c0c0 |
关停容器 |
||
docker stop $(docker ps -a -q) |
关停所有容器 |
||||
26 |
容器 |
创建并启动容器 |
docker run -dit ubuntu:latest /bin/bash 或者 docker run -it -p 6000:8000 xxx:latest 或者 docker run -dit --net=host xxx:latest 开机自启 docker run -dit --restart always xxx:latest 小结:--双线选项后面的=等于号,可以省略。
|
创建并启动容器 |
-d 表示docker容器以守护形式在后台运行。 -i 表示即使未连接STDIN也保持打开状态。 -t 表示分配伪终端TTY。 --name 表示为容器添加别名(如:--name registry-https) -p 表示 开启端口映射(如:-p 5000:6000 将容器外的5000端口,和容器内部的6000端口映射上) docker run -dit --net=host xxx:latest -v 表示挂载宿主机上的磁盘(如:-v /tmp:/data 将容器内中/data目录中的数据存到容器外宿主机的/tmp目录中。) --restart always 开机自启。docker软件重启后,容器也会自动启动 |
|
|
||||
28 |
容器 |
进入容器 |
docker exec -it 3aa2cee9c0c0 /bin/bash |
进入容器,但不是所有容器都可以进入。 |
|
容器 | 容器中执行多条命令 |
docker容器中,执行多条命令: 多条命令需要在宿主机预先执行,使用双引号 多条命令不在宿主机预先执行,到docker容器中执行,使用单引号 |
到容器中执行多条命令。 | ||
29 |
容器 |
退出容器 |
exit |
退出容器。进入后可以退出。 |
|
容器 | 向外复制文件 | docker cp -a project:/opt/abc.txt /home/ | 从容器里面拷文件到宿主机 | ||
容器 | 向内复制文件 | docker cp /home/abc.txt project:/opt/ | 从宿主机拷文件到容器里面 | ||
容器(挂了) | 向外复制文件 | docker container cp 容器A1:/内部路径/内部文件 ./外部文件 | 参考:容器无法启动后,恢复到上个版本https://blog.csdn.net/cy_an/article/details/109357921 | ||
容器(挂了) | 向内复制文件 | docker container cp ./外部文件 容器A1:/内部路径/内部文件 | |||
|
容器 |
容器详情 |
docker inspect 47b19964fb50 |
通过容器的唯一标识ID,查看容器详情 |
|
容器 |
查询容器mac |
docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' mynew-nginx |
mynew-nginx是容器名称。 如:06:22:ac:d1:00:02 |
||
容器 |
查询容器ip |
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mynew-nginx |
查询容器ip。mynew-nginx是容器名称。 如:容器ip为172.17.0.5。这个ip是动态分配的,重启docker容器后,ip会重新分配。 |
||
容器 |
直接访问容器内部端口 |
curl http://172.17.0.5:80 |
80是docker内部端口。知道docker容器内部ip后,可直接访问内部端口,以验证内部端口的可用性。 |
||
容器 |
查看容器内外端口对应清单 |
docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' mynew-nginx |
如:443/tcp -> 8443 80/tcp -> 8081 内端口 443 与外部端口 8443 对应, |
||
容器 |
查看容器内外文件目录对应清单 |
docker inspect 容器A1 | grep Mounts -A 50 |
|||
30 |
容器 |
容器导出为文件 |
docker export 3aa2cee9c0c0 > ubuntu-tar |
容器导出为文件 |
此时会在当前目录下生成该容器的文件 ubuntu-tar |
31 |
镜像 |
2文件生成镜像 |
cat ubuntu-tar | docker import - ubuntu:test |
导入本地文件,生成本地镜像 |
把文件 ubuntu-tar 拷贝到B电脑上去,把容器文件导入B电脑的镜像库 |
镜像 |
1容器生成镜像 |
docker commit -m "info" -a "author" bf29d1747a7 nginx:test |
基于已有容器bf29d1747a7,生成本地镜像nginx:test |
-m:说明信息 |
|
镜像 | 3使用Dockerfile文件生成镜像 | docker build -t httpd:centos . | 基于Dockerfile生成镜像httpd:centos 本质:命令到镜像 |
-f 指定镜像生成时执行的Dockerfile文件。如: docker build -f dockerfilePHP -t httpd:centos . -t 指定镜像标签 |
|
32 |
容器 |
删除容器 |
docker rm dd3fc187b3f6 |
删除容器(推荐方式)。容器需要在停止状态。 |
|
33 |
容器 |
删除容器 |
docker rm -f dd3fc187b3f6 |
强制删除容器 约等于stop + rm |
|
34 |
容器 |
删除容器 |
docker rm $(docker ps -aq) |
删除所有容器(先终止运行的容器) |
docker stop $(docker ps -q) & docker rm $(docker ps -aq) |
容器 |
批量停止指定容器 |
docker stop `docker ps -a | grep "About an hour ago" | awk '{print $1}'` |
|||
|
批量删除指定容器 |
docker rm `docker ps -a | grep "About an hour ago" | awk '{print $1}'` 批量删除停止后的容器 批量删除<none>标记的镜像 |
docker rm `docker ps -a | grep "About an hour ago" | awk '{print $1}'` | ||
36 |
其他 |
登录仓库 |
docker login |
登录仓库(公共仓库) |
|
37 |
其他 |
登录仓库 |
docker login 192.9.100.127:5000 |
登录仓库(私有仓库) |