docker命令汇总

 docker命令汇总

 

序号

类别

简述

命令

功能

说明

1

整体管理

安装

yum install docker-engine

centos上安装docker

Ubuntu上安装docker
apt-get install -y docker.io

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仓库
https://hub.docker.com/

 注意:这个命令不靠谱,不一定搜到得到。我想寻找一个星级较高的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本地镜像,
打标签后,名为10.1.2.3:5000/docker/my-ubuntu,标签为latestv1.0
docker tag 10.1.2.3:5000/docker/ubuntu 10.1.2.3:5000/docker/my-ubuntu:latestv1.0

13

镜像

镜像存出为文件

docker save -o newmi nickistre/centos-lamp

存出镜像
本质:镜像到文件,文件到镜像,又是两步走

newmi:新镜像文件的名称
nickistre/centos-lamp : 被存出的镜像

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
--details 显示更多的信息
-f, --follow 实时输出日志,最后一行为当前时间戳的日志
--since string 输出日志开始日期,即只输出指定日期之后的日志。
--tail string 显示最后多少行日志, 默认是all
(如: -tail=10 : 查看最后的 10 行日志。)
-t, --timestamps 显示时间戳

详见:https://blog.csdn.net/jiangyu1013/article/details/96147534

24

容器

创建容器

docker create -it ubuntu:latest /bin/bash

创建容器
本质:镜像到容器,一步完成,未启动

-i 表示让容器的输入保持打开
-t 表示让docker分配一个伪终端

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容器以守护形式在后台运行。
全称 --detach。含义:在后台运行容器并打印容器ID。

-i 表示即使未连接STDIN也保持打开状态。

-t 表示分配伪终端TTY。

--name  表示为容器添加别名(如:--name registry-https)
或者--name=registry-https

-p   表示  开启端口映射(如:-p 5000:6000  将容器外的5000端口,和容器内部的6000端口映射上)
或者 --net=host 表示共享宿主机的网卡和端口,这样就不用做映射了。即docker内部8000就会自动映射到外部8000。

docker run -dit --net=host  xxx:latest

-v   表示挂载宿主机上的磁盘(如:-v /tmp:/data   将容器内中/data目录中的数据存到容器外宿主机的/tmp目录中。)
-e  指定容器启动时的参数(如: -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key)

--restart  always 开机自启。docker软件重启后,容器也会自动启动
或者--restart=always

 

       

 

28

容器

进入容器

docker exec -it 3aa2cee9c0c0 /bin/bash

进入容器,但不是所有容器都可以进入。

 

   容器  容器中执行多条命令

docker容器中,执行多条命令:

多条命令需要在宿主机预先执行,使用双引号
docker exec -it nginx bash -c "echo 123; echo `date`"

多条命令不在宿主机预先执行,到docker容器中执行,使用单引号
docker exec -it nginx bash -c 'echo 123; echo `date`'

 到容器中执行多条命令。  

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 对应,
内端口 80    与外部端口  8081 对应。

 
 

容器

查看容器内外文件目录对应清单

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:说明信息
-a:作者信息
-p:生成过程中停止容器的运行

  镜像 3使用Dockerfile文件生成镜像 docker build -t httpd:centos . 基于Dockerfile生成镜像httpd:centos
本质:命令到镜像

-f  指定镜像生成时执行的Dockerfile文件。如:

docker build -f dockerfilePHP -t httpd:centos .

 -t  指定镜像标签
后面就会使用刚才编写的Dockerfile自动创建生成镜像。
可以看到整个创建过程中,每运行一次Dockerfile中的指令,都会给初始镜像加上新的一层。

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}'`

批量删除停止后的容器
docker rm `docker ps -a | grep "Exited" | awk '{print $1}'`

批量删除<none>标记的镜像
docker rmi `docker images | grep "<none>" | awk '{print $3}'`

   docker rm  `docker ps -a | grep "About an hour ago" | awk '{print $1}'`
           

36

其他

登录仓库

docker login

登录仓库(公共仓库)

 

37

其他

登录仓库

docker login 192.9.100.127:5000

登录仓库(私有仓库)

 
posted @ 2019-04-24 15:42  安迪9468  阅读(352)  评论(0编辑  收藏  举报