docker 常用命令

1
2
3
4
docker run -dit \
  --name python3.8 \
  -v /Users/ffing/test:/mnt  \
  yankovg/python3.8.2-ubuntu18.04:latest 

’inspect‘ 参数可以查看所有命令

镜像操作 -q获取镜像id

docker search 镜像名 #搜索镜像

docker pull 镜像名 #下载镜像

docker run 镜像名 #运行镜像

docker run -it 镜像名 #交互启动镜像(exit;Ctrl+p+q为不停止容器退出)

docker run -d 镜像名 #后台运行镜像

(踩坑:有的镜像是没有启动程序的,所有需要使用 -itd参数维持后台运行)

docker images #查看本机都有哪些镜像

docker images -q #过滤本机镜像,仅显示镜像id

docker rmi -f 镜像名 #删除镜像

docker rmi -f $(docker images -q) #批量1,删除本机所有镜像

docker images -q|xargs docker rmi -f #批量1,删除本机所有镜像

容器操作 -q获取容器id

docker ps #查看当前运行的容器

docker ps -q #显示当前运行容器,并过滤容器id

docker ps -aq #显示运行中+历史的容器

docker stop 容器id #停止进行

docker stop $(docker ps -q) #批量1,停止所有正在运行的容器

docker ps |xargs docker stop #批量2,停止所有正在运行的容器

docker rm -f 容器id #删除容器(需要先停止)

进入容器

1
2
docker exec -it 容器id /bin/bash  #此方式是新开一个终端
docker attach 容器id /bin/bash    #此方式是进入正在运行的终端

查看容器端口

1
docker prot 容器id

数据共享

--volumes-form 后跟容器名或容器id

1
2
3
#test01挂载的目录共享给03,--volumes-from 
docker run --name=test01 -v /root:/mnt  -itd centos
docker run --name=test03    --volumes-from test01 -itd   centos

网络

docker network

1
2
3
4
5
6
#查看网络(默认bridge)
docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
b2e1e87f2af9   bridge    bridge    local
f633c64359c0   host      host      local
743bdafaaac1   none      null      local

1.Docker服务

2.docker信息

3.镜像命令

4.容器命令

一,Docker服务

1
2
3
启动docker服务:systemctl start docker
停止docker服务:systemctl stop docker
重启docker服务:systemctl restart docker

二,docker信息

1
2
3
4
5
6
#docker版本
dokcer version
#docker信息
docker info
#docker帮助
docker 命令 --help

三,镜像命令

docker images 或 docker image list 查询本机所有镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
docker image 
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    9c7a54a9a43c   3 months ago   13.3kB
#解释
REPOSITORY    镜像仓库源
TAG           镜像标签,一般是版本
IMAGE ID      镜像ID
CREATED       镜像创建时间
SIZE          镜像大小

#选项
-a, --all      显示所有镜像
-q, --quiet    仅显示镜像ID

#经常使用方法,用于列出所有镜像,通过rm统一停止、删除
#列出所有镜像id
docker images -aq

搜索镜像

网页搜索:hub.docker.com

docker search "包名"

1
2
3
4
5
6
7
8
9
[root@localhost ~]# docker search nginx
NAME                                              DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                         18827     [OK]       
unit                                              Official build of NGINX Unit: Universal Web    8         [OK]       
nginxinc/nginx-unprivileged                       Unprivileged NGINX Dockerfiles                   106                  
nginx/nginx-ingress                               NGINX and  NGINX Plus Ingress Controllers fo   74 
#选项
#增加过滤条件如下增加STARS(点赞收藏)大于100的,(这个功能很少用的)
 --filter=STARS=100

下载镜像

docker pull 镜像名【:TAG】

若不行TAG标签,默认latest最新版本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[root@localhost ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Pull complete 
9b829c73b52b: Pull complete 
cb5b7ae36172: Pull complete 
6494e4811622: Pull complete 
668f6fcc5fa5: Pull complete 
dc120c3e0290: Pull complete 
8f7c0eebb7b1: Pull complete 
77b694f83996: Pull complete 
0f611256ec3a: Pull complete 
4f25def12f23: Pull complete 
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest

删除镜像命令

docker rmi 镜像id

1
2
3
4
5
6
#删除指定的镜像
docker rmi -f 镜像id
#删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id
#删除所有镜像id,其中$(docker images -aq)等同``docker images -aq用来获取所有镜像id
docker rmi -f $(docker images -aq)

四,容器命令

新建容器并启动

docker run [选项] 镜像名

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
docker run [选项] 镜像名
#选项说明
--name="定义容器名字"        #定义容器名字test1 test2
-d                        #后台运行
-it                        #交互模式进入容器
-p    主机端口容器端口      #小p,指定映射端口
-P                         #大P随机指定端口
-v                         #本地挂载到容器-v /data:/usr/share/nginx/html
#测试,启动并进入容器
[root@localhost ~]# docker run -it  centos 
[root@0ff9c5a67372 /]# 

#
docekr run -d -v

列出所有运行的容器

1
2
3
4
5
6
7
8
#列出正在运行的容器
docker ps

#历史正在运行+历史,所有的容器
docker ps -a

#列出最近运行的3个容器
docker ps -n=3

退出容器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#进入容器(进入容器时,新建的shell)
docker exec <容器id或容器名> /bin/bash
#进入容器(进入容器时,当前shell进程)
docker attach  <容器id或容器名>


#退出并停止容器
exit
#容器不停止,退出
ctrl+p+q

删除容器,必须先停止容器,否则保存

docker rm 容器id

1
2
3
4
5
6
#删除指定容器
docker rm 容器id 容器id 容器id

#删除所有容器
docker rm $(docker ps -aq)
docker ps -aq |xargs docker rm

启动、停止容器

1
2
3
4
5
6
7
8
#启动容器
docker start 容器id
docker sotp  容器id
docker restart 容器id
docker kill 容器id
#在停止所有正在运行的容器
docker stop $(docker ps -q)
docker ps -q |xargs docker stop