验证docker容器相当轻量级Linux运行环境,每个容器内有属于自己的文件系统,容器之间相互隔离


一、docker的三个重要概念

1、镜像:打包项目带上环境,即镜像

Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像可以用来创建Docker容器,用户可以使用设备上已有的镜像来安装多个相同的Docker容器。

2、容器:镜像创建的运行实例,Docker利用容器来运行应用

每个容器都是相互隔离的、保证安全的平台。我们可以把容器看做是一个轻量级的Linux运行环境。

3、仓库:存放镜像(文件)的地方,分为共有仓库和私有仓库

Docker Hub:国外的

阿里云:配置镜像加速



二、通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离

  • 了解docker的镜像命令、容器命令后,回来理解容器概念特性就非常容易了。

验证1: docker容器相当一个轻量级的Linux运行环境

可以看到,分别在centos容器、tomcat容器、nginx容器内部查看了系统的版本信息, 发现他们底层系统都是Linux ,通过命令,观察他们的版本信息,发现他们的系统版本,可以是不一样的,可以是linux发行版的RedHat系列(centos),也可以是linux发行版的Debian系列(debian)


验证2: 容器的特性是相互隔离,各自运行各自的程序,各自有各自的环境。每个容器内都有一个属于自己的文件系统,互不影响

通过 命令ls ,分别在centos容器、tomcat容器、nginx容器内部查看到他们 有属于自己的文件系统,都是不同的。

通过命令ip,分别在centos容器、tomcat容器、nginx容器内部查看到,在centos系统可以直接得到ip信息,而一开始tomcat、nginx容器内部,都是ip命令找不到,后来,咱通过给tomcat容器修改一下apt源的镜像,并更新一下命令,然后安装iproute2(没给nginx容器安装iproute2命令)的情况下,分别在tomcat、nginx容器内部查看ip命令,发现只有tomcat 容器可以正常使用ip命令。 由此,证明了容器隔离的特性



centos 容器

# 创建centos的容器
docker pull centos
docker run -it --name centos01 centos /bin/bash
# ———————————————————————————————————————— ls 命令查看目录信息————————————————————————————————————
[root@dfd0ef52fc43 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# -----------------------------------这个时候,查看系统的版本信息---------------------------------
[root@dfd0ef52fc43 /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
[root@dfd0ef52fc43 /]# cat /etc/redhat-release
CentOS Linux release 8.4.2105
# ========================================使用命令 ip =====================================
[root@eed52d253e26 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

tomcat 容器

# 创建tomcat的容器
docker pull tomcat:9.0
docker run -it --name tomcat01 tomcat:9.0 /bin/bash 
# ———————————————————————————————————————— ls 命令查看目录信息————————————————————————————————————
root@f1cfb81dedfd:/usr/local/tomcat# ls
BUILDING.txt	 LICENSE  README.md	 RUNNING.txt  conf  logs	    temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin	      lib   native-jni-lib  webapps  work
# -----------------------------------这个时候,查看系统的版本信息---------------------------------
root@f1cfb81dedfd:/usr/local/tomcat# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@f1cfb81dedfd:/usr/local/tomcat# cat /etc/debian_version
11.2
# ========================================使用命令 ip =====================================
root@f1cfb81dedfd:/usr/local/tomcat# ip a
bash: ip: command not found
# ~~~~~~~~~~~~~~~~~~~~~~~~ 给tomcat容器修改一下apt源的镜像,并更新一下命令,然后安装iproute2~~~~~~~~~~~~~~~~~~
# 修改apt下的sources.list
# 先备份,可以选择创建一个文件夹,然后拷贝一份放进去
root@f1cfb81dedfd:/etc/apt# mkdir sources.list.backup
root@f1cfb81dedfd:/etc/apt# cp sources.list ./sources.list.backup
# 使用命令 echo 覆盖+追加方式
# 以覆盖+追加的方式替换掉sources.list文件
echo 'deb https://mirrors.aliyun.com/debian bullseye main'>sources.list
echo 'deb https://mirrors.aliyun.com/debian-security bullseye-security main'>>sources.list
echo 'deb https://mirrors.aliyun.com/debian bullseye-updates main'>>sources.list
# 执行一下更新命令:
apt-get update -y
# 执行下载 iproute2命令:
apt install -y iproute2

# 再次执行ip 命令
root@f1cfb81dedfd:/usr/local/tomcat# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

nginx 容器

# 创建nginx的容器
docker pull nginx
docker run -it --name nginx01 nginx /bin/bash
# ———————————————————————————————————————— ls 命令查看目录信息————————————————————————————————————
root@7b002c0ac35e:/# ls
bin   dev		   docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc			 lib   media  opt  root  sbin  sys  usr
# -----------------------------------这个时候,查看系统的版本信息---------------------------------
root@7b002c0ac35e:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@7b002c0ac35e:/# cat /etc/debian_version
11.2
# ========================================使用命令 ip =====================================
root@f4cc7c858a88:/# ip a
bash: ip: command not found
# ~~~~~~ 在给tomcat容器修改一下apt源的镜像,并更新一下命令,然后安装iproute2(没给nginx容器安装iproute2命令哦),查看ip命令~~~~~~
root@f4cc7c858a88:/# ip a
bash: ip: command not found
  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
要在已经在运行Docker容器Linux命令行中执行命令,可以使用以下命令进入容器的交互命令行: docker exec -it <容器名称或容器ID> bash 这将进入容器的bash shell,允许您在容器内执行任何Linux命令。 如果您想以root用户身份进入容器的交互命令行,可以使用以下命令: docker exec -u 0 -it <容器名称或容器ID> bash 这将以root用户身份进入容器的bash shell。请注意,您需要具有足够的权限才能以root用户身份进入容器。 引用\[1\]中提到了如何进入已经在运行Docker容器Linux命令行,而引用\[2\]和\[3\]则提供了在容器运行Docker的方法。 #### 引用[.reference_title] - *1* [【原创】Docker 进入容器内的 Linux 的交互命令行](https://blog.csdn.net/u011700186/article/details/109452670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [如何在 docker 容器内部运行 docker命令](https://blog.csdn.net/ljp1919/article/details/123515090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟庭大师兄

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值