Docker命令锦集

13 篇文章 0 订阅

详细命令见https://docs.docker.com/reference/

(1)、帮助命令

#1、帮助命令
docker 命令 --help
#2、显示版本信息
docker version
#3、显示系统信息,包括镜像和容器的数量
docker info

(2)、镜像命令

2.1 docker images查看所有本地的主机上的镜像

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
#解释
REPOSITORY 镜像的仓库源
TAG		   镜像的标签
IMAGE ID   镜像的id
CREATED	   镜像的创建时间
SIZE       镜像的大小
#可选项
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show numeric IDs  

2.2 docker search搜索镜像

#搜索mysql
[root@localhost ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9827                [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3588                [OK]     

2.3 docker pull下载镜像

#使用docker pull 软件名[:版本号],[]表示可写可不写,不写版本号的话,默认下载latest最新版本镜像
eg: docker pull mysql  or  docker pull mysql:5.5

2.4 docker rmi 删除镜像

#1、删除指定的镜像
docker rmi -f 镜像id
#2、删除所有镜像
docker -rmi -f $(docker images -aq)

(3)、容器命令

	说明:我们有了镜像才可以创建容器,Linux,下载一个CentOS镜像来测试学习

docker pull centos
	#下载的时候可能会出现Error response from daemon: Get https://...... timeout
	#vim /etc/docker/daemon.json(若没有自行创建)
	#写入:
		{
    		"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
		}
#重启一下docker:
systemctl daemon-reload 
systemctl restart docker

3.1 新建容器并启动

docker run [可选参数] image
#参数说明
  --name="Name" 	容器名字
  -d				后台方式运行
  -it				使用交互方式运行,进入容器查看内容
  -p				指定容器的端口  8080:8080
  		-p	主机端口:容器端口(常用)
  		-p	ip:主机端口:容器端口
        -p  容器端口
        容器端口
  -P				随机指定端口
#测试,启动并进入容器,查看
[root@localhost /]# docker run -it centos /bin/bash
[root@d1958ccc6ba4 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#从容器中退回主机
[root@d1958ccc6ba4 /]# exit
exit
[root@localhost /]# 	  

3.2 列出所有的运行的容器

#docker ps	列出当前正在运行的容器
-a			#列出当前正在运行的容器和历史运行过的容器
-n=?		#显示最近创建的容
-q			#只显示容器的编号 
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
d1958ccc6ba4        centos              "/bin/bash"              5 minutes ago       Exited (0) 4 minutes ago                       eloquent_yonath
4cc1681031db        5acf0e8da90b        "/docker-entrypoint.…"   2 days ago          Exited (143) 3 hours ago                       ES01
a603dfa2e148        64a1f920fb0d        "docker-entrypoint.s…"   2 days ago          Exited (137) 3 hours ago                       myrabbitmq
[root@localhost /]# 

3.3 退出容器

exit			#直接容器停止并退出
Ctrl + P + Q	#容器不停止退出

3.4 删除容器

docker rm 容器id					#删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq)	 #删除所有的容器
docker ps -a -q|xargs docker rm  #删除所有的容器

3.5 启动和停止容器的操作

docker start 容器id		#启动容器
docker restart 容器id		#重启容器
docker stop 容器id		#停止当前正在运行的容器
docker kill 容器id		#强制停止当前容器

(4)、其它常用命令

4.1 后台启动容器

#命令 docker run -d 镜像名
docker run -d centos
#问题 使用docker ps,发现centos停止了
	#docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

4.2 查看日志

docker logs -ft --tail 10 容器id, 没有日志
#自己编写一段shell脚本
docker run -d centos /bin/sh -c "while true;do echo 'monologue';sleep 3;done"
#[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
61237efa7194        centos              "/bin/sh -c 'while t…"   7 seconds ago       Up 6 seconds                            vigorous_elgamal
#显示日志
-tf				#显示日志
--tail number 	#要显示日志条数
[root@localhost /]# docker logs -ft --tail 10 82ddd5f5d71a

4.3 查看容器中进程信息ps

#命令  docker top 容器id
[root@localhost /]# docker top 82ddd5f5d71a
UID                 PID                 PPID                C                   STIME     
root                12723               12708               0                   11:42     
root                12933               12723               0                   11:47     

4.4 查看镜像的源数据

#命令		docker inspect 容器id
#测试
[root@localhost /]# docker inspect 82ddd5f5d71a
[
    {
        "Id": "82ddd5f5d71a2b33538ef961ff0c5e2359bddc68e47bd642ad3f3536d7bca00c",
        "Created": "2020-08-12T03:42:28.398067121Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo monologue;sleep 3;done"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 12723,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2020-08-12T03:42:28.821749235Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
		......

4.5 进入当前正在运行的容器

#我们通常使用的都是后台方式运行的,需要进入容器,修改一些配置
#命令
docker exec -it 容器id bashshell
#测试
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
82ddd5f5d71a        centos              "/bin/sh -c 'while t…"   2 hours ago         Up 2 hours                              determined_feistel
[root@localhost /]# docker exec -it 82ddd5f5d71a /bin/bash
[root@82ddd5f5d71a /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#方式二:
docker attach 容器id
#测试
[root@localhost ~]# docker attach 82ddd5f5d71a
正在执行当前的代码...

#docker exec 	#进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach  #进入容器正在执行的终端,不会启动新的进程

4.6 从容器内拷贝文件到主机上

docker cp 容器id:容器内路径	目的主机路径
#查看当前主机目录下
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
#开启docker容器
[root@localhost ~]# docker run -it centos /bin/bash
[root@localhost opt]# ls
containerd  modules  rh
#进入docker容器内部
[root@localhost opt]# docker attach fb66f59ed5ce
[root@fb66f59ed5ce /]# cd /opt/
#在容器内新建一个文件
[root@fb66f59ed5ce opt]# touch test.java
[root@fb66f59ed5ce opt]# exit
exit
#将文件拷贝到主机上
[root@localhost opt]# docker cp fb66f59ed5ce:/opt/test.java /opt
[root@localhost opt]# ls
containerd  modules  rh  test.java
[root@localhost opt]# 
#拷贝是一个手动的过程,后续可使用-v卷技术实现
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值