Docker常用命令速查

目录

1、Docker系统服务命令

2、Docker 查看

3、Docker操作

4、新建+启动命令

5、进入容器内部


1、Docker系统服务命令
  1. 启动docker systemctl start docke
  2. 停止docker systemctl stop docke
  3. 重启docker systemctl restart docke
  4. 查看docker状态: systemctl status docke
  5. 开机启动: systemctl enable docker

2、Docker 查看
  • 列出本地主机上的镜像

命令:docker images  [OPTIONS]

OPTIONS说明:

-a :列出本地所有的镜像(含历史映像层)

-q :只显示镜像ID

  • 线上搜索镜像

docker search [OPTIONS] 镜像名字

例子:docker search mysql

  • 查看镜像/容器/数据卷所占的空间

docker system df

  • 列出当前所有正在运行的容器

docker ps [OPTIONS]

OPTIONS说明:

-a :列出当前所有正在运行的容器+历史上运行过的

-l :显示最近创建的容器。

-n:显示最近n个创建的容器。

-q :静默模式,只显示容器编号。

3Docker操作
  • 删除镜像

启动已停止运行的容器

docker start 容器ID或者容器名

  • 重启容器

docker restart 容器ID或者容器名

  • 停止容器

docker stop 容器ID或者容器名

  • 强制停止容器

docker kill 容器ID或容器名

  • 删除已停止的容器

docker rm 容器ID

  • 删除多个容器

docker rm -f $(docker ps -a --filter status=exited) #删除所有已停止的容器

  • 删除镜像

docker rmi 某个XXX镜像名字ID

  • 强制删除

docker rmi  -f 镜像ID

  • 删除多个镜像

docker rmi -f 镜像名1:TAG 镜像名2:TAG

  • 把文件从容器内部复制到主机上

docker cp  容器ID:容器内路径 目的主机路径

例子:docker cp 3065f084c80d:a.txt a.txt

4、新建+启动命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 OPTIONS说明(常用):

--name="容器新名字"       为容器指定一个名称;

--restart="no"

no:容器退出时不重启

on-failure:容器故障退出(返回值非零)时重启

always:容器退出时总是重启

--dns=[]:指定容器的dns服务器

-v:给容器挂载存储卷,挂载到容器的某个目录(: 之前是宿主机文件夹,之后是容器需共享的文件夹)

-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:容器重新分配一个伪输入终端,通常与 -i 同时使用;

-m:指定容器的内存上限(-m 4000M或者 -m 4G)

-v:指定容器内目录与宿主机目录共享(: 之前是宿主机文件夹,之后是容器需共享的文件夹)

-e:指定环境变量,容器中可以使用该环境变量(多个环境变量 -e SERVER_PORT=9080  -e SERVER_ADDRESS=0.0.0.1)

-P: 随机端口映射,大写P

-p: 指定端口映射,小写p

       -p hostPort:containerPort   #端口映射 -p 8080:80host8080映射container80

       -p ip:hostPort:containerPort      #配置监听地址-p 10.0.0.100:8080:80,指定host ip10.0.0.100,并映射host8080映射container80

       -p ip::containerPort     #随机分配端口-p 10.0.0.100::80,指定host ip 10.0.0.100,并映射host的随机端口映射container80

       -p hostPort:containerPort:udp   #指定协议-p 8080:80:ucphost8080映射container80,并限定udp端口

       -p 81:80 -p 443:443    #指定多个映射关系

COMMAND说明:在容器启动后,执行的命令。

例如:docker run -it centos /bin/bash     #使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

例子:docker run -d --name=ubuntu_server -p 80:80 –m 4G -v /etc/www:/var/www ubuntu:latest ubuntu:latest

一个比较常用的docker run命令的例子

docker run -it -d --rm --name test01 \
-v /Users/Lisen/Documents/docker_volumns:/data \
-p 18010:8000 -p 18011:8001 \
-h test01 \
-m 20m \
--cpus 2 \
ubuntu \
/bin/bash -c "while true;do echo hello world;sleep 1;done"

解释:

以上命令运行后会在后台运行一个ubuntu的容器,容器内会每隔一秒显示helloworld,一直循环。其他参数看下面解释。如果想要直观的看到hello world,就去掉-d选项即可。

-v:卷映射,或--volume:
-p:指定端口映射
--name:容器名称
-i: 以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d:后台运行
–rm:容器退出自动删除容器
其他参数:
docker run bash -c:进行调试,每隔一秒显示hello world。
--cpu 2 : 指定cpu可使用的数量(--cpuset==0 : 指定0号cpu)
-m : 指定容器最大可使用内存
-h: 容器的主机名

5、进入容器内部

使用exec进入容器

例子:docker exec -it 容器ID bashShell

使用attach进入容器

例子:docker attach 容器ID

想要退出容器,并且不想结束当前shell,从当前shell中退出来,可以使用组合键

Ctrl + p + q

两者的区别

attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。

exec 是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值