Linux下docker的常⽤命令我们来了解⼀下常⽤的docker命令
其中docker container命令中的参数,有同于docker命令的参数的,其⽤法相同,效果⼀样。
docker container命令的参数和docker命令的参数不同的有prune,ls
其中docker *命令中的参数,有同于docker命令的参数的,其含义相同。
1.docker version  #查看docker的版本
2.docker info  #查看docker的详细信息
3.docker images  #查看本地所有镜像
4.docker images nginx  #查看本地与nginx的相关的镜像
5.docker ps -a  #查看当前所有容器的状态(包括没有运⾏的)
6.docker ps  #查看当前正在运⾏的容器的状态
7.docker stop vm1  #停⽌容器vm1(容器vm1存在,并运⾏)
8.docker start vm1  #启动容器vm1(容器vm1存在,但没有运⾏)
9.docker kill vm1  #强制⼲掉容器vm1(容器vm1存在,并运⾏)
10.docker attach vm1  #连接容器vm1(当容器vm1正在运⾏,要再次连接时,使⽤该命令)
11.docker diff vm1  #查看容器vm1的修改(A – Add;D – Delete;C – Change)
docker进入容器12.docker top vm1  #查看容器vm1的进程
13.docker stats vm1  #查看容器vm1的资源使⽤率
14.docker pause/unpause vm1  #暂停/恢复容器vm1(但是docker ps中显⽰仍在运⾏状态)
15.docker cp index.html vm1:/usr/share/nginx/html  #同docker container cp index.html vm1:/usr/share/nginx/html。拷贝index.html⽂件到nginx创建的容器vm1的默
16.docker logs vm1  #查看容器vm1的⽇志(即在容器vm1中的所有操作)
17.docker port vm1  #查看容器vm1的端⼝映射情况(容器vm1正在运⾏)
18.docker network ls  #列出当前有哪些⽹络类型
19.docker volume ls  #列出当前有哪些数据卷
20.docker build -t rhel7:apache .  #使⽤当前⽬录下Dockerfile⽂件创建镜像rhel7:apache
21.docker tag rhel7:nginx4 localhost:5000/rhel7:nginx4  #相当于将rhel7:nginx4镜像复制⼀份出来,名字为localhost:5000/rhel7:nginx4
22.docker   #登录
23.docker   #退出
______________________________________________________________________________
23.docker run -d --name vm1 ubuntu  #使⽤镜像ubuntu创建容器vm1,并运⾏。(-d表⽰后台运⾏容器,并返回容器ID)
24.docker run -it --name vm1 ubuntu  #使⽤镜像ubuntu创建容器vm1,并运⾏,并进⼊交互界⾯。
25.docker run -it --name vm1 rhel7 bash  #使⽤镜像rhel7创建容器vm1,并与其进⾏bash交互;(-i:以交互模式运⾏容器,通常与-t⼀起使⽤;-t:为容器重新分配⼀个伪输⼊
26.docker run -d --name vm1 -v /tmp/docker:/usr/share/nginx/html nginx  #使⽤镜像nginx创建容器vm1,并运⾏,并将本地主机的/tmp/docker⽬录挂载到容器vm1内的
27.docker exec -it vm1 /bin/bash  #进⼊容器vm1的bash界⾯(此时容器vm1正在运⾏)
—————————————————————————————————————————————————————————————————————————
28.docker run --rm busybox:v1  #⽤busybox:v1镜像创建容器,并运⾏,运⾏完成之后,⽴即删除
29.docker run -it --rm ubuntu  #⽤ubuntu镜像创建容器,并运⾏,运⾏完成之后,⽴即删除—————————————————————————————————————————————————————————————————————————30.docker commit vm1 ubuntu:v1  #将容器vm1打包⽣成ubuntu:v1镜像
______________________________________________________________________________
31.docker inspect vm1  #查看容器vm1的详情
32.docker inspect nginx  #查看镜像vm1的详情—————————————————————————————————————————————————————————————————————————
33.docker rmi nginx  #删除nginx镜像
34.docker rm vm1  #删除容器vm1
#当容器正在运⾏时,使⽤该命令回报错。应该先docker stop vm1停⽌vm1容器,再docker rm vm1删除容器vm1。当然,也可以使⽤docker rm -f vm1强制删除正在运⾏的#即docker rm -f vm1相当于docker stop vm1 + docker rm vm1。—————————————————————————————————————————————————————————————————————————35.docker history nginx  #查看nginx镜像的历史—————————————————————————————————————————————————————————————————————————
36.docker load -i ubuntu.tar  #导⼊ubuntu.tar,以添加镜像ubuntu
37.docker import vm1.tar image  #导⼊容器vm1.tar为镜像image —————————————————————————————————————————————————————————————————————————
38.docker save ubuntu > ubuntu.tar  #导出镜像ubuntu
39.docker export vm1 > vm1.tar  #导出容器vm1—————————————————————————————————————————————————————————————————————————
40.docker search  镜像名的⼀部分  #查镜像(如:docker search nginx  #查与nginx相关的镜像)
41.docker pull 镜像名  #拉取镜像
42.docker push 镜像名  #推送镜像
______________________________________________________________________________
43.docker container ls  #同docker ps,查看正在运⾏的容器
44.docker container prune    #删除所有运⾏停⽌的容器
45.docker rm -f `docker ps -aq`  #删除所有容器(运⾏的和没运⾏的)
想要了解更多命令:    docker  --help
下⾯,我们来具体看⼀下docker commit命令,docker attach命令,docker exec命令,docker diff命令+docker logs命令,docker container prune命令,docker save命令的使⽤⽅法
1.docker commit命令
#使⽤ubuntu镜像,创建⼀个vm1容器,并进⼊交互界⾯。
[root@foundation83 kiosk]# docker run -it --name vm1 ubuntu
root@06803b2e8e7d:/# touch file  #在容器vm1内创建⼀个⽂件
root@06803b2e8e7d:/# ls
bin  boot  dev  etc  file  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@06803b2e8e7d:/# exit  #退出容器
#使⽤docker commit命令,将容器vm1打包为ubuntu:v1镜像,并提交
[root@foundation83 kiosk]# docker commit vm1 ubuntu:v1
sha256:ceda2a785c9707b9ba5a9c89bad0fa2c54393dcb484cdb844042635217834269
#使⽤ubuntu:v1镜像,创建⼀个vm2容器,并进⼊交互界⾯。
[root@foundation83 kiosk]# docker run -it --name vm2 ubuntu:v1
root@67327409e9a9:/# ls
bin  boot  dev  etc  file  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#结论:我们会发现,vm2容器中,看到的内容正是容器vm1中的内容。
2.docker attach命令
#使⽤镜像ubuntu,创建容器vm3,并进⼊交互模式
[root@foundation83 kiosk]# docker run -it --name vm3 ubuntu
root@08214d3577be:/#    #使⽤Crtl+p+q退出。如果使⽤的是Ctrl+d退出,那么是使⽤docker attach命令之前,要先使⽤docker start命令,开启相应的容器
#使⽤docker attach命令,再次连接容器vm1
[root@foundation83 kiosk]# docker attach vm3
root@08214d3577be:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
3.docker exec命令
#使⽤nginx镜像后台运⾏容器vm4
[root@foundation83 kiosk]# docker run -d --name vm4 nginx
a9cacd1ca7cf9687d62d186427b78471fc37aa58f63c7b652b329eb0919dd5e5
#使⽤docker exec命令,进⼊容器vm4的交互界⾯,查看⼀些内容
[root@foundation83 kiosk]# docker exec -it vm4 /bin/bash
root@a9cacd1ca7cf:/# cd /usr/share/nginx/html/
root@a9cacd1ca7cf:/usr/share/nginx/html# ls
50x.html  index.html
4.docker diff命令+docker logs命令
#使⽤ubuntu镜像,运⾏容器vm5,并进⼊交互模式
[root@foundation83 kiosk]# docker run -it --name vm5 ubuntu
root@9fbf03633bf3:/# ls
bin  dev  home  lib64  mnt  proc  run  srv  tmp  var
boot  etc  lib  media  opt  root  sbin  sys  usr
root@9fbf03633bf3:/#      #使⽤Ctrl+p+q退出
#将本地主机的/etc/passwd⽂件,拷贝到容器vm1的/tmp⽬录中
[root@foundation83 kiosk]# docker container cp /etc/passwd vm5:/tmp
#使⽤docker diff命令查看容器vm5的修改信息
[root@foundation83 kiosk]# docker diff vm5
C /tmp    #C表⽰改变(Change)
A /tmp/passwd  #A表⽰添加(Add)
#使⽤docker logs查看容器vm5的⽇志信息(在容器vm5中的所有操作)
[root@foundation83 kiosk]# docker logs vm5
root@9fbf03633bf3:/# ls
bin  dev  home  lib64  mnt  proc  run  srv  tmp  var
boot  etc  lib  media  opt  root  sbin  sys  usr
5.docker  container prune命令
停⽌容器后不会⾃动删除这个容器,除⾮在启动容器的时候指定了 --rm标志。使⽤ docker ps -a命令查看 Docker 主机上包含停⽌的容器在内的所有容器。你可能会对存在这么多容器感到惊讶,尤其是在开发环境。停⽌状态的容器的可写层仍然占⽤磁盘空间。要清理掉这些,可以使⽤ docker container prune命令:
[root@foundation83 kiosk]# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
默认情况下,系统会提⽰是否继续。要绕过提⽰,请使⽤ -f 或 --force 标志。
默认情况下,所有停⽌状态的容器会被删除。可以使⽤ --filter 标志来限制范围。例如,下⾯的命令只会删除 24 ⼩时之前创建的停⽌状态的容器:
[root@foundation83 kiosk]# docker container prune --filter "until=24h"
4.docker save命令
[root@foundation83 docker]# docker save ubuntu > ubuntu.tar
[root@foundation83 docker]# ls ubuntu.tar
ubuntu.tar
下⾯,我们来总结⼀下docker常⽤命令中作⽤类似的命令的区别
总结⼀下docker save和docker export的区别:
1. docker save保存的是镜像(image)
2. docker export保存的是容器(container);
总结⼀下docker load和docker import的区别:
1. docker load⽤来载⼊镜像包,docker import⽤来载⼊容器包,但两者都会恢复为镜像;
2. docker load不能对载⼊的镜像重命名,⽽docker import可以为镜像指定新名称。
总结⼀下docker run和docker exec的区别:
1. “docker run”通常是在新创建的容器中所使⽤的命令。 它适⽤于在没有其他容器运⾏的情况下,您想要创建⼀个容器,并且
要启动它,然后在其上运⾏⼀个进程。
2. “docker exec”适⽤于在现有容器中运⾏命令的情况。如果您已经拥有了⼀个正在运⾏的容器,并希望更改该容器或从中获取
某些内容,那么使⽤“docker exec”命令就⾮常合适了。
总结⼀下docker exec和docker attach的区别:
1. attach 直接进⼊容器启动命令的终端,不会启动新的进程;exec 则是在容器中打开新的终端,并且可以启动新的进程。
2. docker attach可以attach到⼀个已经在运⾏的容器的stdin,然后进⾏命令执⾏的动作。但是需要注意的是,如果直接从这个
stdin中exit(ctrl+d),会导致容器的停⽌;docker exec同时使⽤ -it 选项时,会打开⼀个跟我们平时使⽤的TTY⼀样的终端。也不会像attach⽅式因为退出终端,导致整个容器退出。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。