docker常用命令 | 简记 |

举报
墨理学AI 发表于 2022/01/11 00:29:03 2022/01/11
【摘要】 docker的概念可看 1. 镜像操作 查看已有镜像 docker images 1 重启 docker 服务 systemctl restart docker 1 2. 容器操作 查看正...

docker的概念可看

1. 镜像操作

查看已有镜像

 docker images

  
 
  • 1

重启 docker 服务

systemctl restart docker

  
 
  • 1

2. 容器操作

查看正在运行的容器

docker ps

  
 
  • 1

查看当前宿主机上所有的容器,包括正在运行的和已经停止的容器

docker ps -a

  
 
  • 1

docker启动容器

docker start docker_nginx_v1 

  
 
  • 1

docker进入容器交互终端

docker exec -it 5ecf2637f10b /bin/sh

  
 
  • 1

docker停止容器

docker stop 02557eb8ac9c

  
 
  • 1

退出容器

exit

  
 
  • 1

查看所有容器

docker container ls --all

  
 
  • 1

删除容器

docker rm -f 容器id

  
 
  • 1

导出某个容器

docker export 02557eb8ac9c > mynginx.tar

  
 
  • 1
  • 后台运行容器
    更多的时候,需要让Docker在后台运行,而不是把当前执行的命令的结果直接输出在当前宿主机下,此时我们可以使用docker run命令,并添加-d参数来实现:
root@ubuntu:~# docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello docker; sleep 1; done"
59a9f0e30fda31c1799f622da6d56d0723c2bab5313f01f50e855fdbea21f00d

  
 
  • 1
  • 2

此时,容器会在后台运行,不会把输出的结果打印到宿主机上面。使用-d参数运行容器之后,会返回一个容器的ID的给我们

如果想要知道后台运行的容器所执行的命令输出的内容,我们可以使用docker container logs命令来查看。比如,我们想查看刚刚那个容器所输出的内容,我们在命令后面加上容器的ID即可,如下:

root@ubuntu:~# docker container logs 59a9f0e30fda
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 进入容器
    在使用-d参数时,容器会进入后台!但是,有的时候我们需要进入其交互式终端,对其进行一些命令输入操作,此时,我们可以使用docker attach命令或者docker exec命令来实现:
    首先,我们新在后台启动一个容器:
root@ubuntu:~# docker run -dit ubuntu:16.04 bash
98ba6098afe1bc1f79893f4f3eca166b091cfeafcb544584b7fd09b7d12f41ef

  
 
  • 1
  • 2

此时再使用docker container ls命令来查看容器的信息:

一:使用docker attach命令,进入容器交互式环境:

root@ubuntu:~# docker attach 98ba6098afe1
root@98ba6098afe1:/# 

  
 
  • 1
  • 2

二:使用docker exec命令,进入交互式环境,值得注意的是,须指定-i与-t参数和Shell的名称,如下:

root@ubuntu:~# docker exec -it ea0cda7fe8d7 
root@ea0cda7fe8d7:/# 

  
 
  • 1
  • 2

备注:使用docker exec和docker attach命令时,应注意:docker attach命令进入交互式环境时,使用exit命令退出之后,容器即可终止,而docker exec命令则不会!所以这两种命令,更加推荐使用docker exec!

  • 导出和导入容器
    如果要导出某个容器到本地,我们可以使用docker export命令
    使用docker ps -a 查看所有容器列表:
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                    PORTS                  NAMES
e4b2b468e841        continuumio/anaconda3   "/usr/bin/tini -- /b…"   14 hours ago        Exited (0) 13 hours ago                          myanaconda
02557eb8ac9c        nginx:v1                "nginx -g 'daemon of…"   43 hours ago        Up 43 hours               0.0.0.0:8081->80/tcp   docker_nginx_v1

  
 
  • 1
  • 2
  • 3

下面,我们将容器ID为 02557eb8ac9c 的容器导出为docker_nginx_v1.tar,如下:

docker export  02557eb8ac9c  > docker_nginx_v1.tar

  
 
  • 1

此时,会在当前目录下生成一个docker_nginx_v1.tar名称的容器快照文件
导入容器:
我们可以使用docker import命令导入一个容器快照文件生成一个镜像

我们将刚刚生成的容器快照文件docker_nginx_v1.tar导入,命令如下:

cat docker_nginx_v1.tar | docker import - test/docker_nginx_v2

  
 
  • 1

查看刚刚导入容器生成的镜像,如下

docker images 

  
 
  • 1

docker images
我们刚刚导入生成的镜像已经显示在列表之中了!此外,我们还可以通过指定URL或者目录来导入,如下:

docker import http://example.com/exampleimage.tgz example/imagerepo

  
 
  • 1

导入本地容器快照,我们还可以使用docker load命令!

  • 更多命令
命令 说明
docker container ls 列出正在运行的容器
docker ps 列出正在运行的容器
docker container ls -a 列出所有的容器
docker ps -a 列出所有的容器
docker container start 启动容器
docker start 启动容器
docker container stop 停止容器
docker stop 停止容器
docker container restart 重启容器
docker restart 重启容器
docker container rm 删除容器
docker rm 删除容器
docker container logs 打印容器的标准输出
docker logs 打印容器的标准输出
docker中 启动所有的容器命令

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令

docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像

docker rmi $(docker images | awk '{print $3}' |tail -n +2)
tail -n +2 表示从第二行开始读取

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。

原文链接:positive.blog.csdn.net/article/details/85684538

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。