docker 生命周期基本操作

1 管理容器的生命周期

Docker 客户端通过 docker 命令结合一组选项来创建和管理容器,下图简单描绘容器从创建到销毁历程


image.png

2 创建容器

docker run 命令可从镜像创建新容器,并在新容器内启动进程。如果容器镜像不可用,此命令也会尝试下载该镜像
docker run nginx

如果想让容器在后台运行,释放当前shell,可以使用 -d 选项
docker run -d nginx

3 查看容器

docker ps 命令负责显示这些属性

# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                    PORTS               NAMES
407b444c4896        70f311871ae1           "/coredns -conf /etc…"   3 months ago        Up 3 months                                   k8s_cored
# 选项 -a 列出所有容器,包括尚未丢弃的容器
#1. 每个容器在创建后获得一个容器 ID,它是一个十六进制数字,与镜像 ID 相似,但不相关
#2. 用于启动容器的容器镜像
#3. 容器启动时所执行的命令
#4. 容器启动的日期和时间
#5. 容器运行时间总计(如果仍在运行)或者自终止起的时间
#6. 容器所开放的端口,或者端口转发(若已配置)
#7. 容器名称
  1. 第一列是id,随机生成且唯一
  2. 最后一列是名称,可以自己指定,不指定就随机生成
    指定名字运行:docker run --name my-httpd-container httpd
    名称必须唯一,重名会引发错误

4 在容器内运行命令

在创建容器时,会根据容器镜像所指定的内容来执行默认的命令。不过,可能需要执行其他命令来管理运行中的容器,使用exec选项,docker exec 命令在运行中的容器内启动额外的进程

docker exec my-httpd-container cat /etc/hostname

5 列出与运行中或已停止容器相关的元数据

docker inspect:此命令负责列出与运行中或已停止容器相关的元数据。此命令生成 JSON 输出

docker inspect my-httpd-container 输出my-httpd-container这个容器的所有元数据

6 停止运行中的容器

docker stop:此命令负责正常停止运行中的容器

docker stop my-httpd-container

docker kill:此命令负责强制停止运行中的容器

docker kill my-httpd-container

可以通过 -s 选项来指定信号

docker kill -s SIGKILL my-httpd-container

7重启已停止的容器

docker restart 命令利用相同的容器 ID或者NAME 创建一个新容器,该容器重复利用已停止容器的状态和文件系统

docker restart my-httpd-container

8 删除容器

docker rm:此命令负责删除容器,并且丢弃其状态和文件系统

docker rm my-httpd-container

同时删除所有容器

docker rm $(docker ps -aq)

docker ps 命令具有 -q 选项,用于仅返回容器的 ID。此列表可以传递到 docker rm 命令
在删除所有容器前,必须停止所有运行中的容器

docker stop $(docker ps -q)

9 端口映射

容器网络只能由容器主机访问,外部网络想访问容器,可以借由主机网络,通过地址转换实现
比如我现在想访问容器的80端口,通过语句可以实现 访问主机ip的8080端口就会被nat到容器的80端口,实现访问
使用 -p 选项

docker run -d --name httpd -p 8080:80 httpd
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容