docker学习笔记---docker中容器的操作

启动docker服务

#centos8中启动
[root@docker-learning ~]# service docker start
#centos8中设置开机自启
[root@docker-learning ~]# service docker enable
#centos7中启动
[root@docker-learning ~]# systemctl start docker

可使用如下命令判断docker是否启动成功

#方法一,只要输入该命令有结果显示即可
[root@docker-learning ~]# docker info
#方法二,查看docker的状态,为一下图片即可
[root@docker-learning ~]# service  docker status

在这里插入图片描述

容器内的操作

要对容器进行操作,首先要知道容器的表示方式,这样才能用来指定特定的容器

容器的表示方式

容器有三种表示方式:
1.UUID,即docker ps命令查看容器信息的第一列的数字和字母组成的字符
2.长UUID,即成功运行容器后返回的较长的数字和字母,UUID是长UUID的前面部分,linux中一切皆文件,其实docker容器就是存放在
3.容器名称,容器运行时,使用–name选项指定的容器名称

启动docker容器

启动容器时,Docker会先检查本地是否存在要启动的容器镜像,如果本地不存在该容器镜像,Docker就会连接官方维护的Docker Hub Registry,查看Docker Hub中是否有该镜像,有则会自动下载该镜像并保存在本地宿主机中,若没有,则会报错。

启动容器有两种方法,一种是docker run,另一种是docker create

docker run

docker run是最常用的方法,docker run会去创建一个容器,并且创建之后立即运行该容器

常用选项:

docker run常用选项(选项可以使用man docker-run去查看使用手册),这里仅例举经常使用的选项:
1.-d:将容器当在后台去运行
2.-e:设置环境变量
3.-expose:设置容器对外公开的端口(即访问容器的端口号)
4.-h:指定访问容器的主机名
5.-i:设置打开STDIN的标准输出,可以将其标准输出记录到日志中,方便排错和纠错
6.–link:将两个容器连接起来
7.–name:指定容器的名字
8.–network:指定容器的网络类型
9.-p:指定连接容器的端口号
10.-t:指定为容器分配一个伪tty类型的终端
11.-v:为容器指定挂载的卷

运行容器

1.交互式运行容器,容器运行之后直接进入容器内部,这里使用-it选项:

[root@docker-learning-centos7 nginx-test]# docker run -i -t --name "docker1" centos:7 /bin/bash

在这里插入图片描述
此时,可以看到已经进入了容器的内部,可以在容器中进行操作,因为是以交互式的方式运行的容器,所以容器运行起来之后,会自动进入到/bin/bash,即分配一个bash程序

使用exit命令退出容器,但是注意,以该方法运行的容器,一旦退出容器,即当前终端,则容器也就停止了
在这里插入图片描述
2."分离"方式在后台运行容器

[root@docker-learning-centos7 ~]# docker run -d --name "docker2" nginx

在这里插入图片描述
若没有以交互式的方式运行容器,则可以使用以下命令去运行容器:

其中970280791b3a是容器的ID,也可以使用容器的名字,即运行容器时,用--name选项指定的名字
[root@docker-learning-centos7 ~]# docker exec -it 970280791b3a  /bin/bash
[root@docker-learning-centos7 ~]# docker exec -it docker2  /bin/bash

在这里插入图片描述
3.指定开放容器的端口
-p选项是开放容器中的端口,如果没有具体指定绑定宿主机上的某个端口,则会默认分配一个宿主机上面的端口号(端口号位于32768-61000之间),如果具体指定绑定宿主机上的某个端口,则会绑定到指定宿主机的端口号上

#不指定绑定的端口号
[root@docker-learning-centos7 ~]# docker run -d -p 80 --name "test1"  nginx 
#指定绑定到宿主机上面的某个端口号
[root@docker-learning-centos7 ~]# docker run -d -p 8080:80 --name "test2"  nginx 

查看docker内容器的信息如下,发现为test1容器随机分配了一个端口号,而test2容器则是绑定在指定的端口号的
在这里插入图片描述
也可用如下命令去查看绑定宿主机的端口号:

[root@docker-learning-centos7 ~]# docker port test1 80

在这里插入图片描述
其中0.0.0.0代表本机所有的IP地址

docker create

docker create方法不常用,docker create方法只是创建一个容器,并不会去运行创建的容器

常用选项

–expose :指定暴露的接口
–link:和另一个容器建立链接
-u:指定用户
-w:指定工作路径
-v:指定卷

创造容器
[root@docker-learning-centos7 ~]# docker create --name "dockercreate" nginx

在这里插入图片描述
可以看到创建容器的状态是created,因此可以证明,docker create只能创建容器,并不会让其自动运行,需要使用docker start运行新创建的容器

查看docker中的容器

使用docker ps查看docker中的容器,docker ps默认只显示当前运行的容器信息

常用选项

-q:显示容器的ID号
-a:显示所有的容器,包括没有运行的容器
-l:显示最后创建容器的信息
-n:显示最后创建n个容器的信息
-s:显示容器的大小

查看docker中的所有容器

[root@docker-learning-centos7 ~]# docker ps -a

在这里插入图片描述

查看docker中指定容器的信息

#查看最后一个容器的信息
[root@docker-learning-centos7 ~]# docker ps -l
#查看最后n个容器的信息
[root@docker-learning-centos7 ~]# docker ps -n2

在这里插入图片描述

查看docker中所有容器的ID

[root@docker-learning-centos7 ~]# docker ps -qa

在这里插入图片描述

容器是一个独立的系统,会为其分配必不可少的资源,使用ip add查看地址,可以看到在docker运行容器之后,会为docker分配虚拟网卡,默认是bridged类型的网络连接方式
在这里插入图片描述

docker容器的其余操作

当使用交互式的方式运行容器(以/bin/bash为例),当/bin/bash命令处于运行状态的时候,容器才是运行状态,当使用exit命令退出容器时,/bin/bash命令也就结束了,这时候容器也就停止运行了。但是注意容器只是停止运行了,而不是不存在了,可以使用docker ps -a查看停止运行的容器,状态表示为exited。

重启容器

这里是以名称的方式重启容器

使用docker restart +容器
[root@docker-learning-centos7 ~]# docker restart docker1
自动重启容器,在运行容器时指定自动重启功能
[root@docker-learning-centos7 ~]# docker run -i -t --restart=always --name auto ubuntu  /bin/bash 
指定自动重启的次数,为最多5次
[root@docker-learning-centos7 ~]# docker run -i -t --restart=on-failure 5 --name=auto ubuntu  /bin/bash 

停止容器

[root@docker-learning-centos7 ~]# docker stop docker1

删除容器

删除指定容器
[root@docker-learning-centos7 ~]# docker rm docker1
删除所有容器
[root@docker-learning-centos7 ~]# docker rm  $(docker ps -aq)

查看docker容器内的日志

运行docker容器,指定容器的任务
[root@docker-learning-centos7 ~]# docker run --name daemon -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"
查看日志
[root@docker-learning-centos7 ~]# docker logs daemon
动态查看日志,-f是指定动态查看,-t是在日志记录前面添加时间
[root@docker-learning-centos7 ~]# docker logs -ft daemon

在这里插入图片描述

docker日志驱动

docker中的日志驱动方式如下:
在这里插入图片描述

监控docker中的进程

动态监控,每隔2s更新信息(CPU、memory、网络I/O、磁盘I/O等)
[root@docker-learning-centos7 ~]# docker stats daemon hxy_ubuntu

在这里插入图片描述

查看

1.docker服务容器里面的详细信息:

[root@docker-learning-centos7 ~]# docker inspect dockername

2.docker服务的详细信息:

[root@docker-learning-centos7 ~]# docker info

pts和tty的区别:

1.打开的位置不一样:在虚拟机打开的终端是tty类型的,在远程连接工具打开的终端是pts类型

2.原理不一样:从内核里面来看,pts的另一端连接的是ptmx,pts是虚拟终端,而tty的另一端连接的是内核的终端模拟器,内核终端模拟器的另一端连接的是具体的硬件

3.数量不一样:pts没有数量限制,tty有数量限制,最多只能有6个tty类型的终端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我会帮助你记录和学习Docker的知识点。下面是一份Docker学习笔记: 1. 什么是DockerDocker是一个开源的容器化平台,可以帮助开发者创建、打包、部署和运行应用程序,使应用程序可以在不同的环境无缝运行。 2. Docker的优势有哪些? - 轻量化:Docker容器与虚拟机相比更加轻量级,启动和停止速度更快。 - 可移植性:Docker容器可以在任何支持Docker的平台上运行,无需担心环境不一致的问题。 - 隔离性:Docker使用容器技术进行隔离,每个容器之间相互独立,不会相互影响。 - 效率:Docker可以将应用程序及其依赖项打包为一个镜像,部署和扩展非常方便。 3. Docker常用的概念: - 镜像(Image):一个只读的模板,包含了运行应用程序所需的所有文件和依赖项。 - 容器(Container):基于镜像创建的可执行实例,可以运行、停止、删除等操作。 - 仓库(Registry):用于存储和分享镜像的地方,常用的有Docker Hub。 - Dockerfile:用于定义镜像构建过程的文本文件,包含了一系列的指令和配置。 4. Docker基本使用命令: - `docker pull <image-name>`:从仓库拉取指定镜像。 - `docker run <image-name>`:创建并运行一个新的容器。 - `docker ps`:查看当前正在运行容器。 - `docker stop <container-id>`:停止指定容器运行。 - `docker rm <container-id>`:删除指定容器。 - `docker rmi <image-name>`:删除指定镜像。 5. Docker常见应用场景: - 镜像管理:可以通过Docker镜像进行应用程序开发、测试和部署。 - 微服务架构:通过容器化实现应用程序的模块化,方便管理和扩展。 - CI/CD:在持续集成和持续部署过程使用Docker来构建、测试和发布应用程序。 这些是Docker学习过程的一些基础知识点和常用命令。希望对你有帮助!如果你还有其他问题,可以随问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值