当前位置: 首页 > news >正文

Docker 容器操作

Docker 容器操作

一、容器基本概念

  • 容器本质:一个运行中的进程,具有隔离性
  • 隔离核心:每个容器拥有独立的文件系统,由 Docker 镜像提供
  • 镜像内容:应用程序代码、运行时依赖、文件系统对象等

二、容器相关操作

1、创建容器
  • -i:保持标准输入打开
  • -t:分配伪终端
[root@docker ~]# docker create -it centos:7
[root@docker ~]# docker ps
# 显示当前系统正在运行的容器
[root@docker ~]# docker ps -a
# 显示系统中所有容器(包括没有运行的)

在这里插入图片描述

CONTAINER ID:容器ID号

IMAGE:容器依赖的镜像

COMMAND:容器中运行的命令

CREATED:创建时间

STATUS:创建的状态信息

PORTS:端口

NAMES:容器的名称

2、启动容器

使用docker create 命令新建的容器处于停止状态,可以使用docker start命令来启动它

[root@docker ~]# docker start b8a3087515cd
[root@docker ~]# docker ps

在这里插入图片描述

3、运行容器

除了创建容器后通过 start 命令来启动,也可以直接新建并启动容器

等价于先执行 docker create 命令,再执行 docker start 命令

[root@docker ~]# docker run -it centos:7 
[root@d4de123a025a /]# exit

在这里插入图片描述

在这里插入图片描述

对于创建的bash容器,当用户使用exit命令退出bash进程之后,容器也会自动退出

这是因为对于容器来说,当其中的应用退出后,容器的使命完成,也就没有继续运行的必要了

4、停止容器

可以使用 docker pause 命令来暂停一个运行中的容器

[root@docker ~]# docker pause b8a3087515cd

在这里插入图片描述

处于paused状态的容器,可以使用 docker unpause 命令来恢复到运行状态

[root@docker ~]# docker unpause b8a3087515cd

在这里插入图片描述

可以使用 docker stop 来终止一个运行中的容器
[root@docker ~]# docker stop great_visvesvaraya

在这里插入图片描述

执行 docker container prune 命令,会自动清除掉所有处于停止状态的容器
[root@docker ~]# docker container prune

在这里插入图片描述

5、进入容器

在使用-d参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入
docker attach:不建议大家使用docker attach,因为退出容器终端,会导致容器的停止
docker exec:推荐大家使用docker exec命令,因为退出容器终端,不会导致容器的停止

[root@docker ~]# docker attach mycentos1
[root@docker ~]# docker exec -it mycentos2 /bin/bash

在这里插入图片描述

6、删除容器

默认情况下,docker rm命令只能删除已经处于终止或退出状态的容器,并不能删除还处于运行状态的容器

如果要直接删除一个运行中的容器,可以添加-f参数

[root@docker ~]# docker rm -f httpd

在这里插入图片描述

7、导出容器

某些时候,需要将容器从一个系统迁移到另外一个系统,此时可以使用docker的导入和导出功能,这也是 docker 自身提供的一个重要特性

导出容器是指,导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用docker export 命令。-o 选项也可以重定向 > 来代替

[root@docker ~]# docker export -o centos7.tar.gz mycentos1

在这里插入图片描述

8、导入容器

导入容器,导出的文件又可以使用docker import命令导入变成镜像

[root@docker ~]# docker import centos7.tar.gz mycs7:v1
# 导入镜像
[root@docker ~]# docker run -itd --name mycentos mycs7:v1 /bin/bash
# 创建容器

在这里插入图片描述

三、容器相关运用

1、容器端口映射
映射随机端口

当我们启动一个web容器的时候,可以将容器的端口映射宿主机上面,这样便于我们访问该web服务器

-P 参数将容器内部使用的80端口映射到宿主机的随机端口上来

[root@docker ~]# docker run --name httpd -itd -P httpd:latest

在这里插入图片描述

在这里插入图片描述

映射指定端口

我们也可以通过 -p 参数将容器内的80端口映射到宿主机的指定端口上

[root@docker ~]# docker run --name httpd2 -itd -p 8080:80 httpd:latest

在这里插入图片描述

在这里插入图片描述

2、查看容器日志

可以使用docker logs查看容器的日志信息,例如:我们想要查看httpd2容器的访问日志

除了可以查看访问日志以外,只要是该容器产生的日志都会显示出来,包括服务的启动/关闭之类的

[root@docker ~]# docker logs httpd2

在这里插入图片描述

3、查看容器详细信息

可以使用docker inspect查看容器的详细信息,例如:我们想要查看httpd2容器详细信息

会显示,容器是什么时候创建的,使用的什么镜像,容器端口号,使用的什么网络等等

[root@docker ~]# docker inspect httpd2

在这里插入图片描述

四、容器部署 WEB 服务器示例

1、获取镜像
[root@docker ~]# docker pull nginx
2、使用默认的配置来启动一个nginx容器实例
[root@docker ~]# docker run -itd --name nginx-t -p 80:80 nginx:latest
3、打开浏览器访问此地址

在这里插入图片描述

4、nginx部署
[root@docker ~]# mkdir -p /root/nginx/www
[root@docker ~]# mkdir -p /root/nginx/logs
[root@docker ~]# mkdir -p /root/nginx/conf
5、拷贝容器内nginx默认配置文件到本地当前目录下的conf目录
[root@docker ~]# docker cp cde960294046:/etc/nginx/nginx.conf /root/nginx/conf/
6、部署容器命令
[root@docker ~]# docker run -itd -p 8888:80 --name nginx-tt -v /root/nginx/www/:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs/:/var/log/nginx nginx:latest
7、创建自己的网页
[root@docker ~]# cd /root/nginx/www/
[root@docker www]# echo "wiltjer" > index.html
8、使用浏览器进行访问

在这里插入图片描述

五、其他容器命令

1、复制文件
docker container cp
2、查看变更
docker container diff
3、查看端口映射
docker container port

六、总结

  1. 容器拥有独立文件系统,由镜像提供
  2. create 创建停止状态的容器,start 启动
  3. 使用 exec 进入容器,避免使用 attach
  4. 删除容器前需确保其已停止(或使用 -f
  5. 使用 export/import 迁移容器
  6. 端口映射便于外部访问容器服务
  7. 镜像是静态定义,容器是运行实例
  8. 熟练使用 run, exec, stop, rm, start, cp 等命令
http://www.dtcms.com/a/457953.html

相关文章:

  • 小说网站建设源码潜江网络
  • 做网页游戏网站html网页设计大赛作品
  • 日语学习-日语知识点小记-进阶-JLPT-N1阶段应用练习(8):语法 +考え方21+2022年7月N1
  • 维基框架 (Wiki Framework) v1.1.2 | 企业级微服务开发框架
  • 做的网站提示不安全个人网站的名字
  • 用wordpress建站会不会显得水平差喜迎二十大作文
  • 我已经把 Cookie 的值从 zhangfei 改成了 guanyu,为什么再次获取时还是 zhangfei?”
  • C++回调函数的设计以及调用者应注意的问题
  • 上海推广网站公司网站搭建什么意思
  • 美团-Mtgsig4.0.4逆向-Js逆向
  • 巩义推广网站哪家好制作网站设计的技术有
  • 孝感房地产网站建设建设总承包网站
  • 杭州网站建设服务公司小程序商城源代码
  • SSH运维操作:从基础概念到高级
  • WinSCP下载和安装教程(附安装包,图文并茂)
  • Linux环境基础开发工具
  • 备案期间网站wordpress个人简历主题
  • AI智能体(Agent)大模型入门【8】--关于ocr文字识别图片识别
  • 商城版网站建设网站开发的经验
  • Linux命令--minio安装
  • 长春网站推广网诚传媒互联网服务商
  • 提供网站建设的理由创建私人网站
  • 【Proteus仿真】基于AT89C51单片机的单片机双向通信
  • 温州市网站制作多少钱wordpress 数据库设计
  • 鲅鱼圈网站怎么做分公司vi设计
  • OpenTiny学习中如何快速提升项目效率?
  • 预训练与后训练 区别
  • 从 “死锁“ 到 “解耦“:重构中间服务破解 Java 循环依赖难题
  • 【原创】SpringBoot3+Vue3高校图书管理系统
  • docker部署相关知识