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

02 Docker基本管理

2.1 Docker镜像管理

2.1.1 案例:构建各类Docker镜像服务

2.1.2 案例环境

主机

操作系统

主机IP地址

服务器

Centos7.3x86-64

192.168.10.100

2.1.3 案例拓扑原理

通过 Dockerfile 创建常见应用镜像,Dockerfile 的构成如图 2.3 所示

                                        图 2.1 Dockerfle 构成图

2.1.4 案例需求

下面是本案例的需求:

(1)基于容器(现有镜像)创建镜像:

(2)基于模板创建镜像:

(3)基于 Dockerfile 创建常用基础服务。

1.端口映射

(1)随机映射端口
[root@localhost ~]# docker run -d -P  httpd
4c476c9e9567c198a1a2d4f587fd49fa63bdb8efa130b9e0fd91d09692771c9c
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED         STATUS         PORTS                                     NAMES
4c476c9e9567   httpd     "httpd-foreground"   8 seconds ago   Up 7 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   hungry_williamson
(2)指定映射端口 
[root@localhost ~]# docker run  -d -p 8080:80 httpd
b967b6a5eb6c197282ef7b22406364788f398994bb3304bddcf80c635bf28f60
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED              STATUS              PORTS                                     NAMES
b967b6a5eb6c   httpd     "httpd-foreground"   3 seconds ago        Up 2 seconds        0.0.0.0:8080->80/tcp, :::8080->80/tcp     silly_hypatia
4c476c9e9567   httpd     "httpd-foreground"   About a minute ago   Up About a minute   0.0.0.0:32768->80/tcp, :::32768->80/tcp   hungry_williamson
[root@localhost ~]# 

2.容器互联

(1)创建源容器
[root@localhost ~]# docker run -dit --name web01 centos:7
5de53ba0244d76ef1f0e89deed62ed1c811cb252a92213166df1d86d4c7d2b6b
(2)创建接收容器 
[root@localhost ~]# docker run -dit --name web02 --link web01:web01 centos:7
cc2f113d62752ef7da978df2a0c443240400b5e3b780577b7216de55bbcaf82d
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE      COMMAND              CREATED              STATUS              PORTS                                     NAMES
cc2f113d6275   centos:7   "/bin/bash"          5 seconds ago        Up 5 seconds                                                  web02
5de53ba0244d   centos:7   "/bin/bash"          59 seconds ago       Up 58 seconds                                                 web01
b967b6a5eb6c   httpd      "httpd-foreground"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp, :::8080->80/tcp     silly_hypatia
4c476c9e9567   httpd      "httpd-foreground"   3 minutes ago        Up 3 minutes        0.0.0.0:32768->80/tcp, :::32768->80/tcp   hungry_williamson
[root@localhost ~]# 
(3)测试容器互联 
[root@localhost ~]# docker exec -it web02 /bin/bash
[root@cc2f113d6275 /]# ping web01
PING web01 (172.17.0.4) 56(84) bytes of data.
64 bytes from web01 (172.17.0.4): icmp_seq=1 ttl=64 time=0.127 ms
64 bytes from web01 (172.17.0.4): icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from web01 (172.17.0.4): icmp_seq=3 ttl=64 time=0.071 ms
^C
--- web01 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2048ms
rtt min/avg/max/mdev = 0.071/0.091/0.127/0.026 ms

[root@cc2f113d6275 /]# cat /etc/hosts
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
172.17.0.4    web01 5de53ba0244d    //web01
172.17.0.5    cc2f113d6275
[root@cc2f113d6275 /]# 

3.容器间通信 

[root@localhost ~]# docker network create my_net
1a700ddbc5f3b3d479ba0654af19fa87f647a9d1c017e618c6b2d5fe2309379c

[root@localhost ~]# docker run -itd  --name web03  centos:7
05b5bec5de8b380a614e85365e719cb6f1d0ea85b10b260bfd10094a6f49ecb6

[root@localhost ~]# docker run -itd --name pc01 --net=my_net centos:7
66896396ab6732e0d4157f5ae20644c76264d75c2789006a2f8385c0e476f1ba


[root@localhost ~]# docker run -itd --name pc02 --net=my_net centos:7
28d589d7761ca23dfec2e5cadc10e726a7736db62f3b3152a365b27166341d47
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE      COMMAND              CREATED              STATUS              PORTS                                     NAMES
28d589d7761c   centos:7   "/bin/bash"          4 seconds ago        Up 3 seconds                                                  pc02
66896396ab67   centos:7   "/bin/bash"          38 seconds ago       Up 37 seconds                                                 pc01
05b5bec5de8b   centos:7   "/bin/bash"          About a minute ago   Up About a minute                                             web03
cc2f113d6275   centos:7   "/bin/bash"          6 minutes ago        Up 6 minutes                                                  web02
5de53ba0244d   centos:7   "/bin/bash"          7 minutes ago        Up 7 minutes                                                  web01
b967b6a5eb6c   httpd      "httpd-foreground"   8 minutes ago        Up 8 minutes        0.0.0.0:8080->80/tcp, :::8080->80/tcp     silly_hypatia
4c476c9e9567   httpd      "httpd-foreground"   9 minutes ago        Up 9 minutes        0.0.0.0:32768->80/tcp, :::32768->80/tcp   hungry_williamson
[root@localhost ~]# docker exec -it pc02 /bin/bash
[root@28d589d7761c /]# ping pc01
PING pc01 (172.18.0.2) 56(84) bytes of data.
64 bytes from pc01.my_net (172.18.0.2): icmp_seq=1 ttl=64 time=0.106 ms
64 bytes from pc01.my_net (172.18.0.2): icmp_seq=2 ttl=64 time=0.085 ms
^C
--- pc01 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1051ms
rtt min/avg/max/mdev = 0.085/0.095/0.106/0.014 ms

2.2 Docker数据管理

1.创建数据卷

[root@localhost ~]# docker run -itd -v /data1 -v /data2 --name web04 centos:7
72cdca8369829635566ce9b9c0a3e00a834d8b361743d56413a17754d9eeb7a1

[root@localhost ~]# docker exec -it web04 /bin/bash
[root@72cdca836982 /]# ls
anaconda-post.log  bin  data1  data2  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@72cdca836982 /]# 

2.数据卷容器

[root@localhost ~]# docker run -itd --volumes-from web04 --name web05 centos:7 /bin/bash
85aa54fdd16585310c913f53803c0f1fb7ef689b481a2a42c1494b27a3a0341a
[root@localhost ~]# docker exec -it web05 /bin/bash
[root@85aa54fdd165 /]# ls
anaconda-post.log  bin  data1  data2  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@85aa54fdd165 /]# 

3.挂载主句目录作为数据卷 

[root@localhost ~]# docker run -dit -p 9999:80 -v /data:/usr/local/apache2/htdocs  --name web06 httpd
36eedcd5d5bfeadce269d8c3964d1bd7ebc1f238b91ba5c2502d4bb244a3cd06
[root@localhost ~]# echo "ni hao" > /d
data/ dev/  
[root@localhost ~]# echo "ni hao" > /data/index.html 
[root@localhost ~]# curl 192.168.10.100:9999
ni hao
[root@localhost ~]# 
[root@localhost html]# docker run -itd  -p 3333:80 -v /www/conf/default.conf:/etc/nginx/conf.d/default.conf  -v /www/html/:/usr/share/nginx/html -v /www/nginx/log/:/var/log/nginx  --name web15 nginx /bin/bash
52c2823baf0518a1c63f40a97f6058f035f777dd247beafd85c6aa6aba9454df
[root@localhost html]# docker exec -it web15 /bin/bash
root@52c2823baf05:/# nginx
root@52c2823baf05:/# exit
exit

[root@localhost html]# curl 192.168.10.100:3333
访问成功
[root@localhost html]# 

http://www.kler.cn/a/304037.html

相关文章:

  • dapp获取钱包地址,及签名
  • Java基于SpringBoot+Vue的宠物共享平台的设计与实现(附源码,文档)
  • 【C++】详解RAII思想与智能指针
  • 2024年11月10日系统架构设计师考试题目回顾
  • 工业通信协议对比:OPC-UA、Modbus、MQTT、HTTP
  • layui 文件上传前检查文件大小,后面再点上传出现重复提交的问题
  • 个性化、持续性阅读 学生英语词汇量自然超越标准
  • 智慧交通基于yolov8的行人车辆检测计数系统python源码+onnx模型+精美GUI界面
  • Camera2 预览旋转方向、拍照、录像成像旋转
  • Pytorch维度转换操作:view,reshape,permute,flatten函数详解
  • 计算左边(比自己小的元素)的最长距离
  • Linux中常见的Docker问题及解决方法
  • Oracle rman 没有0级时1级备份和0级大小一样,可以用来做恢复 resetlogs后也可以
  • 基于python+django+vue的农业管理系统
  • 2024北京IC WORLD大会圆满收官!高频科技收获满满,同“芯”共促产业发展
  • Ai+若依(智能售货机运营管理系统---帝可得)--货道关联商品【08篇---0004:关联商品】
  • Vue:watchEffect的作用与性质
  • C++库std::clamp
  • Android Studio新建工程(Java语言环境)
  • Cassandra 和 ScyllaDB
  • Matlab初等数学与线性代数
  • 如何搭建一个自己的外卖会员卡系统?
  • Qt篇——Qt使用C++获取Windows电脑上所有外接设备的名称、物理端口位置等信息
  • 【Kubernetes】(K8S)彻底卸载详细教程
  • 瑞芯微RK3566鸿蒙开发板OpenHarmony标准系统应用兼容性测试指导
  • 孟德尔随机化分析和GWAS分析有什么区别?