首页 > 其他分享 >Docker入门之简单操作

Docker入门之简单操作

时间:2022-09-06 14:58:07浏览次数:95  
标签:容器 container 入门 ID 命令 简单 Docker docker

目录

1 Docker启动容器

Docker启动容器有两种方式:

  • 基于镜像新建一个容器并启动;
  • 将处于终止状态 (exited)的容器重新启动

1.1 基于镜像新建容器并启动

通过如下命令来启动容器:

docker run IMAGE:TAG

参数说明:
IMAGE: 镜像名称;
TAG: 标签,镜像版本号;

举个例子,比如想启动一个 ubuntu 容器, 并通过终端输出 Hello world:
在这里插入图片描述

执行命令如下:

docker run ubuntu:latest /bin/echo 'Hello world'

在这里插入图片描述
注意,上面这行命令运行容器,在输出 Hello world 后就会终止运行。如果想以交互的方式运行容器,执行如下命令:

docker run -t -i ubuntu:latest /bin/bash

参数说明:
-t: 让 Docker 分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上;
-i: 让容器的标准输入保持打开;

以交互的方式运行 docker 容器

1.1.1 拓展知识:执行 docker run 后,Docker 都干了些啥

执行 docker run 后:

  • 检查本地是否存在指定的镜像,不存在就从 registry 下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止

1.1.2 以daemon守护态方式运行容器

实际应用中,需要让容器以后台的方式运行,以此保证一个稳定的服务。
运行容器时添加 -d 参数可以让容器以后台的方式运行,例如启动一个 Ubuntu 后台容器,并每隔一秒打印 Hello world,命令如下:

docker run -d ubuntu:latest /bin/sh -c "while true; do echo hello world; sleep 1; done"

执行成功后,会返回一个容器 ID。

后台运行的容器可以通过 docker logs 命令来查看日志:

docker container logs [container ID or NAMES]

1.2 启动终止状态的容器

执行如下命令,可以将已经终止 (exited)运行的容器重启。

docker container start [container ID or NAMES]

测试一波好不好使,先通过 docker ps 命令获取正在运行的容器:

图片
假如本地有个 Redis 容器正在运行,先拿到容器 ID或者容器名称,执行 docker stop 停止它后,再执行 docker container start 命令重启这个 Redis 容器 :

图片

可以看到,成功重启了一个终止状态的容器。

2 Docker查看容器

2.1 查看正在运行中、停止运行的容器

docker ps : 查看正在运行中的容器;
docker ps -a : 查看所有容器,包括运行中的、已经停止运行的容器。

在这里插入图片描述
返回字段说明:

  • CONTAINER ID : 容器 ID;
  • IMAGE : 创建容器时使用的镜像;
  • COMMAND : 容器最后运行的命令;
  • CREATED : 容器创建时间;
  • STATUS : 容器状态;
  • PORTS : 端口信息;
  • NAMES : 容器名:和容器 ID 一样,可以标识容器的唯一性,同一台宿主机上不允许有同名容器存在,否则会冲突;

2.1.1 拓展命令

docker ps -l : 查看最新创建的容器,注意,只列出最后创建的容器。
docker ps -n=2: -n=2 指定列出最新创建的 2 个容器。

3 Docker 进入容器

要想进入到已运行的 Docker 容器,主要有如下两种方式:

  • 使用 docker exec 命令;
  • 使用 docker attach 命令;

3.1 exec 命令(推荐)

Docker 在 1.3.X 版本后开始支持 exec 命令进入容器,命令如下:

docker exec -it [container ID or NAMES] 

举个例子,比如想进入到本地的 Redis 容器中:
图片
Docker 准备进入 redis 容器
可以通过容器 ID 或者名称进入容器:

docker exec -it redis /bin/bash

图片
docker 通过 exec 命令进入到容器后,要想退出容器,只需键入 exit 命令回车即可:

(base) ➜  ~ docker exec -it redis /bin/bash
root@023d93457910:/data#
root@023d93457910:/data#
root@023d93457910:/data#
root@023d93457910:/data# exit
exit

注意:exec 命令和下面 attach 命令的区别在于,当使用 exit 退出容器时,不会导致容器停止。

3.2 attach 命令

执行命令格式如下:

docker attach [container ID or NAMES] 

注意:这种方式在执行 exit 命令退出容器时,会导致容器停止运行。

4 Docker 停止&关闭容器

有以下两种方式关闭一个正在运行的 Docker 容器:

4.1 stop 优雅模式

docker container stop [container ID or NAMES]
# 简写模式(可省略关键字 container )
docker stop [container ID or NAMES]

举个例子,比如想要停止下图中的 Ubuntu 容器:
在这里插入图片描述
docker 停止关闭 ubuntu 容器
通过容器 ID 或者容器名称都可以停止容器,命令如下:

# 通过容器 ID 关闭容器
docker stop 4e6fc78cc0c4

4.2 kill 强制模式

kill命令强制关闭容器:

docker container kill [container ID or NAMES]
# 简写模式(可省略关键字 container )
docker kill [container ID or NAMES]

4.3 关闭交互形式运行容器

对于交互形式运行的容器如何关闭
前面说到的交互形式运行的容器,可以通过输入exit 或者 Ctrl+d退出容器。

4.4 查看已经停止运行的容器

执行如下命令,可以看到那些已经停止运行的容器:

docker container ls -a

图片

查看 docker 已经停止运行的容器
想要重启已经停止运行的容器,命令如下:

docker container start [container ID or NAMES]

另外,docker container restart 命令会将一个已经运行中的容器重新启动。

5 Docker 重启容器

执行如下命令重启 Docker 容器:

# 不管容器是否启动,直接重启
docker restart [container ID or NAMES]

举个例子,比如想要重启下面的 Redis 容器:

图片
docker重启 redis 容器
执行如下命令即可:

# 通过容器 ID 或者名称都可以
docker restart redis
# 限时 5s 关闭 redis 容器,然后重启
docker restart -t=5 redis

-t : 设置关闭容器的限制时间,若超时未能关闭,则使用 kill 命令强制关闭,默认值为 10s,这个时间用于容器保存自己的状态。

6 Docker 导出&导入容器

6.1 导出容器

使用 docker export 命令可以导出容器,比如想导出下面的 Redis 容器:
图片

查看本地的 docker 容器

docker export 9e8d11aeef0c > redis.tar

导出的 tar 包快照存于当前目录下

6.2 导入容器快照

使用 docker import 命令可以将快照导入为镜像,例如:

cat redis.tar | docker import - test/redis:v1.0

导入成功后,就可以看到新生成的镜像了:

图片
除了通过快照的方式导入容器,还可以通过指定 URL 或者某个目录来导入,例如:

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

7 Docker 删除容器

7.1 删除容器

执行如下命令可以删除一个已经停止运行的容器:

docker container rm [container ID or NAMES]
# 简写模式(可省略关键字 container )
docker rm [container ID or NAMES]

举个例子,比如想要删除下面的 Redis 容器:
在这里插入图片描述
执行如下命令即可:

# 通过容器 ID 删除
docker rm 023d93457910

7.1.1 强制删除容器

添加 -f 参数可强制删除一个正在运行的容器:
图片
docker查看正在运行的容器
如图示,强制删除这个 Redis 容器:

# 通过容器 ID 强制删除容器
docker rm -f 207aaf2e3384

7.2 删除所有已经停止运行的容器

如何一次性删除所有已经停止的容器

docker container ls -a 命令可以查看所有已经创建的包括停止运行的容器,如果数量太多要一个个删除会很麻烦,执行如下命令即可删除掉所有已经停止运行的容器:

docker container prune

转载于:https://mp.weixin.qq.com/s/v4irskK_uXgsnLe2FUoTLw

标签:容器,container,入门,ID,命令,简单,Docker,docker
From: https://www.cnblogs.com/jingzh/p/16661771.html

相关文章

  • 简单浏览器标尺
    importReact,{useEffect,useState,useCallback}from'react';importstylesfrom'./index.less';import_from'lodash';exportdefault()=>{const[x......
  • 关于若依框架实现list数据导出到excel并实现下载(简单实现)
    没看源码,仅仅会用先是在需要导出的实体类上添加若依自带的@Excel的注解,注解中主要的两个参数一个是name用于生成excel中的字段名,一个是sort用于在excel中字段的排序......
  • 2022最简单易懂的IOS App打包发布完整流程
     创建appid标识符进入apple开发者中心点击Account​编辑切换为居中添加图片注释,不超过140字(可选)点击Certificates,Identifiers&Profile......
  • docker-compose
    docker-compose简介dockercpmpose是给容器做单机编排的Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。docker-compose将所管理的容......
  • aarch安装docker
     操作系统:麒麟V10-server1、下载Dockeraarch版本docker下载地址:https://download.docker.com/linux/static/stable/aarch64/,根据需要下载对应的版本。 2、安装......
  • 如何设置docker swarm中的manager节点,不执行任何的task?
     在刚创建好的一个dockerswarm集群中,manager节点虽然具备管理的角色,但是,还是允许task在上面运行的,那么如果就让manager节点,干一个活,就是管理,调度的任务,不让其执行任何的......
  • Docker - 常用命令
     #查看容器#查看活跃容器dockerps#查看所有容器(包括已关闭)dockerps-a#筛选指定名称和状态的容器dockerps-q--filtername=.*bingohuang.*--......
  • swoole 安装和简单实用
    Swoole是:PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,处理异步任务,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写......
  • Typora 最后免费版本也不能用了?简单一招搞定
    作者:小牛呼噜噜|https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜」Typora是一款优秀的Markdown编辑器和阅读器......
  • 声明式HTTP客户端-Feign 使用入门详解
    什么是OpenFeignOpenFeign(以下统一简称为Feign)是Netflix开源的声明式HTTP客户端,集成了Ribbon的负载均衡、轮询算法和RestTemplate的HTTP调用等特性,并对其......