docker attach 退出_Docker 常用命令

  • Post author:
  • Post category:其他


我们来学习一下Docker常用命令。

7195ca1765837f04dfac94cf3cca20e0.png

1.命令分类

总的来说分为以下几种:

  • Docker环境信息 — docker [info | version]

  • 容器生命周期管理 — docker [create | exec | run | start | stop | restart | kill | rm | pause | unpause]

  • 容器操作运维 — docker [ps | inspect | top | attach | wait | export | port | rename | stat]

  • 容器rootfs命令 — docker [commit | cp | diff]

  • 镜像仓库 — docker [login | pull | push | search]

  • 本地镜像管理 — docker [build | images | rmi | tag | save | import | load]

  • 容器资源管理 — docker [volume | network]

  • 系统日志信息 — docker [events | history | logs]

2.镜像操作

我们需要拉取一个最新版的 nginx镜像,我们可以用如下命令:

docker pull [镜像名]

而如果我们想从 DockerHub 上去下载某个指定版本的镜像,我们可以使用以下命令:

docker pull [镜像名:tag版本号]

Docker daemon 发现本地没有我们需要的镜像,会自动去 DockerHub 上去下载镜像。

我们如果想查看下主机下存在多少镜像,我们可以用如下命令:

docker images

那如果我们想运行这个容器中的镜像的话,并且调用镜像里面的 bash ,我们可以使用如下命令:

docker run -t -i [容器名]或[容器ID] /bin/bash

3.容器操作

查看容器

我们要想知道当前有哪些容器在运行,我们可以用如下命令:

docker ps -a


-a

是显示出当前所有正在运行的容器。


操作容器

我们可以用如下命令,对一个容器进行启动、重启、停止:

docker start [容器名]或[容器ID]docker restart [容器名]或[容器ID]docker stop [容器名]或[容器ID]

这个时候我们如果想进入到这个容器中,我们可以使用 attach 命令:


进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:


docker attach

:退出后,容器也停止。


docker exec

:推荐大家使用

docker exec

命令,因为此退出容器终端,不会导致容器的停止。

docker exec -it [容器名]或[容器ID] /bin/bash


查看容器日志

docker logs [容器名]或[容器ID]


删除容器

然后我们用如下命令去删除这个容器:

docker rm [容器名]或[容器ID]

然后这个时候我们再去删除这个镜像:

docker rmi [镜像名]或[镜像ID]

基本的常用命令就介绍到这里。下面进入实际操作。

4.实例演示

下面以操作nginx镜像,来演示一下基本命令的操作。


拉取镜像

从官方仓库中拉取最新版

nginx

➜ docker pull nginxUsing default tag: latestlatest: Pulling from library/nginxbb79b6b2107f: Pull complete111447d5894d: Pull completea95689b8e6cb: Pull complete1a0022e444c2: Pull complete32b7488a3833: Pull completeDigest: sha256:ed7f815851b5299f616220a63edac69a4cc200e7f536a56e421988da82e44ed8Status: Downloaded newer image for nginx:latest

查看拉取的镜像:

➜  ~ docker imagesREPOSITORY  TAG    IMAGE ID      CREATED      SIZEnginx      latest  f35646e83998  3 days ago   133MB

拉取指定版本nginx镜像:

➜  ~ docker pull nginx:1.19.11.19.1: Pulling from library/nginxbf5952930446: Pull completeba755a256dfe: Pull completec57dd87d0b93: Pull completed7fbf29df889: Pull complete1f1070938ccd: Pull completeDigest: sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2Status: Downloaded newer image for nginx:1.19.1

接下来再次查看拉取的指定版本的

nginx

➜  ~ docker imagesREPOSITORY  TAG     IMAGE ID      CREATED       SIZEnginx       latest  f35646e83998  3 days ago    133MBnginx       1.19.1  08393e824c32  2 months ago  132MB


启动镜像

➜  ~ docker run -d --name my-nginx -p 8080:80 nginx:1.19.19fc9d3cdf10bbead81953de490596a8f1d5b54eb67afde0a769a5d720c274410


查看运行的容器

➜  ~ docker psCONTAINER ID    IMAGE         COMMAND                 CREATED          STATUS         PORTS                 NAMES9fc9d3cdf10b    nginx:1.19.1  "/docker-entrypoint.…"  33 seconds ago   Up 32 seconds  0.0.0.0:8080->80/tcp  my-nginx


测试nginx运行

这里运行的本地端口是8080端口。

➜  ~ curl http://localhost:8080<html><head><title>Welcome to nginx!title><style>    body {        width: 35em;        margin: 0 auto;        font-family: Tahoma, Verdana, Arial, sans-serif;    }style>head><body><h1>Welcome to nginx!h1><p>If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.p><p>For online documentation and support please refer to<a href="http://nginx.org/">nginx.orga>.<br/>Commercial support is available at<a href="http://nginx.com/">nginx.coma>.p><p><em>Thank you for using nginx.em>p>body>html>


查看容器日志

➜  ~ docker logs my-nginx/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d//docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh10-listen-on-ipv6-by-default.sh: Getting the checksum of /etc/nginx/conf.d/default.conf10-listen-on-ipv6-by-default.sh: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh/docker-entrypoint.sh: Configuration complete; ready for start up


进入容器

使用容器名,进入容器:

➜  ~ docker exec -it my-nginx /bin/bashroot@9fc9d3cdf10b:/#

输入

exit

可以退出容器


操作容器

先停止容器,再启动容器

➜  ~ docker stop my-nginxmy-nginx➜  ~ docker restart my-nginxmy-nginx


删除容器

删除前需要先停止容器

➜  ~ docker stop my-nginxmy-nginx➜  ~ docker rm my-nginxmy-nginx


删除镜像

➜  ~ docker rmi nginx:1.19.1Untagged: nginx:1.19.1Untagged: nginx@sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2Deleted: sha256:08393e824c32d456ff69aec72c64d1ab63fecdad060ab0e8d3d42640fc3d64c5Deleted: sha256:16ea6e7b0ecc56682daf0e01d89ffe04aeb702f67e572e94e574b1aa63d2e3d3Deleted: sha256:d1c30fbca15bed39f9d6a613d05885ab2de964ed39c8ad3a7091c94aad935f1cDeleted: sha256:e860d6c3bb27d4d057f6c5412b92afa0ae15664f6914eb460784e755c1a651e5Deleted: sha256:0e6a092cd837c31fb9b85896c5849a2a02ba89131a531fa6ca8811d35bcf25caDeleted: sha256:d0f104dc0a1f9c744b65b23b3fd4d4d3236b4656e67f776fe13f8ad8423b955c

查看镜像,确认指定版本的镜像是否删除完成

➜  ~ docker imagesREPOSITORY  TAG    IMAGE ID      CREATED      SIZEnginx      latest  f35646e83998  3 days ago   133MB

发现镜像只有最新版的,1.19.1版本镜像已经删除。

到此基本的镜像操作就演示到这里了。

小结

更多镜像命令详见下表:

列出

docker -h

中的列有命令:

命令 说明
attach 将本地标准输入、输出和错误流附加到运行的容器
build 从Dockerfile构建镜像
commit 根据修改的容器创建新镜像
cp 在容器和本地文件系统之间复制文件/文件夹
create 创建一个新的容器
diff 检查容器文件系统上的文件或目录的更改
events 从服务器获取实时事件
exec 在运行的容器中运行命令
export 将容器的文件系统导出为tar归档文件
history 查看一个镜像的历史命令
images 显示所有镜像
import 从压缩文件中导入内容以创建镜像
info 显示整个系统的信息
inspect 返回Docker对象的低级信息
kill 杀死一个或多个正在运行的容器
load 从tar归档文件或STDIN加载映像
login 登录Docker仓库
logout 登出Docker仓库
logs 获取容器的日志
pause 暂停一个或多个容器中的所有进程
port 列出容器的端口映射或特定映射
ps 显示所有容器
pull 从仓库中拉取镜像
push 推送镜像到仓库中
rename 重命名容器
restart 重启一个或多个容器
rm 删除一个或多个容器
rmi 删除一个或多个镜像
run 在新容器中运行一条命令
save 将一个或多个镜像保存到tar归档文件(默认情况下流化到STDOUT)
search 在Docker Hub中搜索镜像
start 开启一个或多个停止的容器
stats 显示容器资源使用统计数据的实时流
stop 停止一个或多个运行中的容器
tag 从原镜像中创建一个标签镜像
top 显示容器正在运行的进程
unpause 在一个或多个容器中取消暂停所有进程
update 更新一个或多个容器的配置
version 显示Docker版本信息
wait 阻塞,直到一个或多个容器停止,然后打印它们的退出代码

da6e5ff36a9413f40eb83f8542562d7d.png



版权声明:本文为weixin_42502977原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。