Docker Tutorial for Beginer(day2)

本文介绍了Docker的基础操作,包括如何创建python应用容器并实现端口映射,如使用-P和-p选项绑定端口。还探讨了容器间的网络互联,通过创建Docker网络使多个容器可以互相通信。最后,讲解了Dockerfile的编写,包括FROM和RUN指令,以及如何优化Dockerfile以减少镜像大小。通过Dockerfile构建镜像,并使用docker build命令进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker Tutorial for Beginer(day2)

一、Docker web 应用容器

## 创建了一个 python 应用的容器。
## 实现端口映射
docker run -d -P training/webapp python app.py

9e4d65abbfde   training/webapp   "python app.py"   7 seconds ago   Up 6 seconds   0.0.0.0:49153->5000/tcp, :::49153->5000/tcp   strange_bhabha
//容器5000端口被绑定到外部的49153端口

-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。

docker run -d -p 5000:5000 training/webapp python app.py

ec2b83cfe780   training/webapp   "python app.py"   4 seconds ago    Up 3 seconds    0.0.0.0:5000->5000/tcp, :::5000->5000/tcp     upbeat_sanderson
  • 我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
  • 修改绑定协议为UDP
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

二、Docker 容器互联

  • 创建一个Docker 网络
## docker network create
docker network create -d bridge test-net
ps:可选项-d 指定创建网络的类型。
  • 容器与Docker 网络进行连接
docker run -itd --name test1 --network test-net ubuntu /bin/bash
docker run -itd --name test2 --network test-net ubuntu /bin/bash

ps:使用ping测试test1 2之间的连接

三、Dockerfile

Dockerfile的编写

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

FROM nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html

FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

shell 格式:

RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。

exec 格式:

RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

ps: Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大

FROM centos
RUN yum -y install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz

ps:三个run命令会生成三层镜像,造成体量增加

## 可以优化格式为
FROM centos
RUN yum -y install wget \
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
    && tar -xvf redis.tar.gz
使用Dockerfile构建镜像
## 使用Docker build 通过Dockerfile 进行镜像构建
docker build -t centos:v3 .

##运行成功后用Docker images进行查看是否完成生成。

PS:由于此部分命令较多结构较为复杂,因此不根据菜鸟教程进行学习,会在深入学习中进行详细的学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值