docker的基本使用

weidaijie weidaijie     2022-12-03     163

关键词:

Docker容器的基本使用

在之前的文章中,我们已经讲解了Docker的基本概念以及如何在各个平台下进行Docker的安装。

在接下来,我们将继续讲解Docker容器的基本使用。

查看Docker服务是否正常

执行如下命令后,我们可以看到Docker的一些基本信息,包括容器、镜像的数量,执行与存储驱动以及Docker的基本配置等。

 

运行容器

接下来,我们将会使用docker run命令来创建容器。

sudo docker run -i -t ubuntu /bin/bash

 

让我们来分析一下这条简单的命令吧:

1. 首先,我们给Docker执行的是docker run命令。

2. 此外,我们指定了两个参数,分别是-i和-t。

-i参数用设置容器中的STDIN是开启的。

-t参数表示为创建的容器分配一个伪tty终端。

Ps:通常-i和-t两个参数会联合使用,也可以写作-it。

3. 接下来,我们可以看到命令行中输入了ubuntu。

它是在告诉Docker基于哪个镜像来创建容器。

在我们指定某个镜像后,Docker首先会检查本地是否存在该镜像,如果没有找到该镜像,那么首先会连接到官方维护的Docker Hub Registry进行查找并下载。

4. 最后的/bin/bash则指定了该容器需要运行的命令。

 

命令完成后,我们将会看到我们进行了该容器内的shell:

[email protected]:/#

 

总结一下,该命令最基本的运行格式如下:

sudo docker run -i -t 镜像名称 命令代码

 

使用容器

在执行完刚才的命令后,我们已经以root用户进入到了新容器中。 该容器可以认为是一个完整的ubuntu系统,可以正常使用。 例如,我们可以试下如下命令:

 

[email protected]:/# hostname# 41225bc38698[email protected]:/# cat /etc/hosts # 172.17.0.8 41225bc38698# 127.0.0.1 localhost# ::1 localhost ip6-localhost ip6-loopback# fe00::0 ip6-localnet# ff00::0 ip6-mcastprefix# ff02::1 ip6-allnodes# ff02::2 ip6-allrouters

 

此外,我们还可以安装一个软件包,以vim为例:

apt-get update && apt-get install vim

 

执行如下命令后,我们可以成功的安装完成vim。 当我们使用完成该容器后,可以使用exit来退出容器。

此时,容器会停止命令,同时我们回到了宿主机的命令行提示符。 Ps:此时,容器仅仅是停止运行,但是并没有被销毁。 我们可以使用如下命令查看当前系统中存在的容器:

docker ps -a

其中,默认docker ps命令会查询到所有正在运行的容器,添加参数-a后,则无论是否在运行中,都会被查找到。

技术图片

从上表可以看出,我们可以通过docker ps命令可以查询到容器的很多有用信息,包括:ID、镜像、命令、创建时间、退出状态、端口以及容器名称等

容器命名

我们已经提到了每个容器都有其对应的一个名称。 默认情况下,如果没有指定容器名称,系统将会自动随机生成一个唯一的名称。 当然,我们也可以直接来指定容器的名称,此时,使用--name 容器名来实现。

例如:

sudo docker run --name nianshi_test -i -t ubuntu /bin/bash

此时,我们将会创建一个容器名称为nianshi_test的容器。 一个合法的容器名称是只能由字母、数字、下划线、圆点和横线组成的。 Ps:

容器名称必须是唯一的,如果我们试图创建两个同名的容器时将会失败。容器名称是一个可以替代容器id的有利工具,合理利用容器名称可以大幅提高工作效率。

启动已停止的容器

当一个容器已经停止后,我们可以使用docker start命令来重新启动该容器。

# 根据容器名称启动sudo docker start nianshi_test# 根据容器id启动sudo docker start 41225bc38698

 

进行容器内部命令行

在我们重新启动容器后,将会继续沿用之前docker run运行时的参数来运行。

但是,此时我们并没有直接进入到交互式shell的环境。 需要再次执行如下命令才能进行到交互式shell的环境:

sudo docker attach nianshi_test

ps:有时在执行完该命令后,需要再次敲击一个回车才能看到交互式shell。

创建守护式容器

在之前的内容中,我们主要讲解了如何创建一个交互式的环境。 还有更多的时候,我们可以期望是创建一个长期运行的容器。对于此类容器,我们称之为守护式容器,它们没有交互式会话,非常适合应用程序和服务运行。 以下面的代码为例:

sudo docker run --name nianshi_test1 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"# 066762ca46506b0ed27aaeb266da6b662e38111604150a3448dc2adae7449b31

其中,我们可以看到在docker run命令中,我们使用了-d参数,表示将程序放在后台执行。

而执行脚本的本身含义则表示每隔1s打印一个hello world,直到容器停止。

查看容器日志

那么我们如何看这些守护式容器的日志呢? Docker本身提供了docker logs用于日志查询。

sudo docker logs nianshi_test1

该命令会输出最后几条日志并返回。 更为推荐的一种方式是添加-f参数,用于监控容器的日志,功能类似于tail -f。

sudo docker logs -f nianshi_test1

此外,我们还可以使用-t-参数来添加时间戳。

sudo docker logs -f -t nianshi_test1# 2018-01-23T03:56:40.821800852Z hello world# 2018-01-23T03:56:41.822581880Z hello world

 

查看容器内进程

除了查看容器的日志外,我们还可以查看容器的进程信息。 docker top是用于查询容器内进行相关的信息。

 

docker top nianshi_test1

 

在容器内运行进程

在Docker1.3版本以后,我们可以通过docker exec命令在容器内额外启动新进程。

假设我们现在已经启动了一个容器,名称为nianshi_test1,现在我们可以同时在利用该容器在启动别的进程:

sudo docker exec -it nianshi_test1 /bin/bash

 

停止守护式容器

如果想要停止一个守护式容器,那么我们可以使用docker stop命令来完成。

示例如下:

sudo docker stop nianshi_test1

 

自动重启容器

有时,我们期望由于某些意外错误而造成容器停止运行时,可以自动重启服务。 那么我们就需要借助--restart参数来实现了。

Ps:默认情况下,Docker不会自动重启容器。 示例程序:

 

# 任务情况下都自动重启sudo docker run --restart=always --name nianshi_test2 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"# 退出代码不为0时,自动重启;且最多重启5次sudo docker run --restart=on-failure:5 --name nianshi_test3 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

 

查看容器详细信息

有时,我们希望查看容器的一些详细信息时,可以使用docker inspect来获取。

示例:

sudo docker inspect nianshi_test1# [# "Id": "41225bc38698733b6c1e0b2d3e98ce4b46a41406f4904917348080425bd96716",# "Created": "2018-01-23T02:49:43.318333661Z",# "Path": "/bin/bash",# "Args": [],# "State": # "Running": true,# "Paused": false,# "Restarting": false,# "OOMKilled": true,# "Dead": false,# "Pid": 23357,# "ExitCode": 0,# "Error": "",# "StartedAt": "2018-01-23T03:31:07.463860469Z",# "FinishedAt": "2018-01-23T03:02:13.679114188Z"# ,# "Image": "03ae2aa34a62c4ba72924b53d82cad6d5f84e106aa375ac2cabb8ba1047a3460",# ...

 

删除容器

当一个容器已经使用完成且后续不会继续使用时,我们可以使用docker rm命令来删除它们。

示例:

sudo docker rm nianshi_test

Ps:运行中的容器是无法直接删除的,需要先停止容器运行后才能将其删除。

 

docker基本使用

首先应该明白,docker的基本概念镜像(Image)容器(Container)仓库(Repository)docker安装与启动yuminstall-yepel-releaseyuminstalldocker-io#安装docker#配置文件/etc/sysconfig/dockerchkconfigdockeron#加入开机启动servicedockerstart#启动docker服务#基本信 查看详情

docker的基本使用

------------恢复内容开始------------引子:  我认为docker相比传统的虚拟化技术最大的不同就是不虚拟化内核,使用共享宿主机内核的方式。通过namesapce,联合文件系统,cgroups这三种机制分别从网络,文件以及资源上进行隔离,... 查看详情

docker的安装及基本使用(代码片段)

1.docker的安装,根据官方文档安装(使用centos):https://docs.docker.com/engine/install/centos/  其中配置下载docker,使用阿里云下载(国外太慢)sudoyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 查看详情

docker的基本使用方法

参考技术ADocker是常用的容器产品,通过使用Docker,可以实现基本的微服务部署架构.下面介绍一下Docker的基本使用方法dockerimagelsdockercontainerls-a$dockercontainerlogsweblogic14c$dockercontainerlogsweblogic14c-f$dockercontainerstopweblogic14c$dockercontainerstartw... 查看详情

docker基本命令与使用——docker容器的网络连接

一.Docker容器的网络基础通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。docker0是Linux虚拟网桥。Linux虚拟网桥的特点:可以设置IP地址相当于拥有一个隐藏的虚拟网卡docker0的地... 查看详情

docker的安装与基本使用

安装dockercurl-shttps://get.docker.com|sh 好慢....一个小时吧...启动docker先执行命令dockerversion来来一下:dockerversion  发现没有启动dockerserver,执行命令:servicedockerstart 然后再查看一下dockerversion dockerpull命 查看详情

docker基本命令与使用——docker容器

一.容器的基本操作1.启动容器dockerrunIMAGE[COMMAND][ARG...]run在新容器中执行命令eg:dockerrunubuntuecho‘HelloWorld‘输出内容的同时,启动的容器已经停止,这是一个实行单次命令的容器 2.启动交互式容器dockerrun-i-tIMAGE/bin/bash-i--interacti... 查看详情

centos7上docker的安装和基本使用

Centos7上Docker的相关操作Docker的安装1、检查内核版本docker使用linux的内核必须是3.10以上,首先需要#uname-r 2、使用yum安装docker#yuminstalldocker3、启动&停止重启:#systemctlrestartdocker停止:#systemctlstopdocker启动:#systemctlstartdocker开机自... 查看详情

[转]docker和rancher的安装与基本使用

本文转自:https://blog.csdn.net/wangshouhan/article/details/80405672一.Docker1.CentOS下Docker安装安装$yum-yinstalldocker-io查看docker版本$dockerversion启动docker$servicedockerstart以上都没问题表示docker安装成功。2.docker基础命令#查看doc 查看详情

docker安装,基本使用,实战

【docker概念作用术语】【使用docker的步骤】【docker安装及配置】【环境要求】docker要求centos7必须要64位,内核3.1及以上https://docs.docker.com/或者看这里:http://www.docker.org.cn/book/install/rhel-docker-dependance-28.html查看内核信息,已满足dock... 查看详情

docker基本使用

一、定义官方定义:Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。由DockerInc.公司前dotC1oud公司,PaaS市场中的老牌提供商)的团队编写,基于Apache2.0开源授权协议发行。程序员能理解的定义:Docker是DockerInc. 公司... 查看详情

docker基本使用

一、镜像常用命令1.dockerimages(查看镜像)REPOSITORY:镜像名称TAG:镜像标签IMAGEID:镜像IDCREATED:镜像的创建日期2.dockersearch镜像名称(搜索镜像)3.dockerpull镜像名称(拉取镜像)4.docker 查看详情

docker安装,基本使用,实战

【docker概念作用术语】【使用docker的步骤】【docker安装及配置】【环境要求】docker要求centos7必须要64位,内核3.1及以上https://docs.docker.com/或者看这里:http://www.docker.org.cn/book/install/rhel-docker-dependance-28.html查看内核信息,已满足dock... 查看详情

docker的基本使用(代码片段)

一、简介Docker是一个开源的应用容器引擎,基于Go语言。Docker支持将软件编译成一个镜像,然后在镜像中为软件做好配置,将镜像发布出去,其他使用者就可以直接使用这个镜像,而不需再和以前一样配置各种环境。Docker容器是... 查看详情

docker学习--docker的基本认识

1、Docker架构  Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。  Docker容器通过Docker镜像来创建。  容器与镜像的关系类似于面向对象编程中的对象与类。2、Ubuntu16.04上安装docker比... 查看详情

云原生之docker-compose篇docker-compose工具的安装和基本使用

【云原生之docker-compose篇】docker-compose工具的安装和基本使用一、docker-compose介绍1.docker-compose简介2.docker-compose的特点二、docker-composev1版本的安装1.下载docker-compose二进制包2.给文件增加执行权限3.检查docker-compose版本三、docker-compose... 查看详情

docker容器的基本使用

上一篇docker的安装:http://wangjiatong.blog.51cto.com/11834370/1885951启动容器:650)this.width=650;"src="http://s3.51cto.com/wyfs02/M00/8C/12/wKioL1hhEiqCUJV-AAB3hUG1xhs308.png-wh_500x0-wm_3-wmp_4-s_3797455628.pn 查看详情

docker的基本使用及dockerfile的编写(代码片段)

前言:最近在准备面试,在复习到Docker相关内容时,想写一些东西分享给大家然后加深一下自己的印象,有了这篇随笔。Docker的简介:docker从文件系统、网络互连到进程隔离等等,极大的简化了容器的创建... 查看详情