docker进阶

docker端口映射
-p80:81 #将宿主机80端口映射到容器81端口
docker run --name nginx01 -d -p80:81 morride/nginx:v1.18.0

docker挂载数据卷
-v宿主机目录:容器目录 #将宿主机目录挂载到容器目录
docker run --name nginx01 -d -p80:81 -v/root/test01:/root/test02 morride/nginx:v1.18.0
docker inspect xxxxxx| grep /root/test01 #查看容器挂载信息

docker传递环境变量
-e #传递环境变量
docker run --name nginx02 -d -e TEST=hello morride/nginx:v1.18.0 printenv

docker容器内安装软件
apt-get yum
首先需要下载apt-get源
tee /etc/apt/sources.list << EOF
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
EOF
之后使用 apt-get update更新源
使用apt-get install -y 就能安装软件了
退出容器后将容器创建成一个新镜像
docker commit -p xxxxxxxxx morride/nginx:1.18.0-xxx

dockerfile应用
就是一个文本文件 文件名只能是dockerfile 里面其实就是一组组命令
docker build 进行构建镜像

  1. 格式
    #注释
    指令大写,内容小写,大小写是没有太多的强制要求,我们强烈要求使用指令大写,内容小写
  2. Dockerfile是按照顺序执行里面的指令的 从上到下依次执行
  3. 每一个dockerfile的第一个非注释指令,必须是“FROM” 用户为镜像文件创建的过程中,指定的基础镜像
  4. 在实践中,基础镜像可以是任何可用的镜像文件,默认情况下,docker build会在本地查找dockerfile上面指定的镜像,当本地不存在这个镜像时,则会从官方远程仓库拉取
    Dockerfile核心指令

FROM #指定基础镜像

USER #指定运行的用户

WORKDIR #指定的工作目录

COPY #复制文件

ADD #高级复制,会自动解压文件

RUN #执行的命令

EXPOSE #指定对外的端口,用到的不多 -p -P

ENV #设置环境变量

CMD #容器启动后执行的命令

ENTRYPOINT #容器启动后执行的命令

RUN命令执行命令并创建新的镜像层,通常用于安装软件包

CMD命令设置容器启动后默认执行的命令及其参数,但CMD设置的命令能够被docker run命令后面的命令行参数替换

ENTRYPOINT配置容器启动时的执行命令(不会被忽略,一定会被执行,即使运行 docker run时指定了其他命令)

USER/WORKDIR指令 用户/工作目录
mkdir /opt/dockerfile
cd /opt/dockerfile
vim Dockerfile
FROM morride/nginx:v1.18.0
USER nginx
WORKDIR /usr/share/nginx/html

docker build . -t morride/nginx:v1.18.0_with_user_workdir

ADD/EXPOSE指令 高级复制带解压/指定端口
FROM morride/nginx:v1.18.0
ADD root/index.html /usr/share/nginx/html/index.html
EXPOSE 80

RUN/ENV指令 运行命令/指定环境变量
FROM centos:7.7.1908
ENV VER 4.9.2
RUN yum install -y tcpdump-$VER

CMD/ENTPYPOINT指令 容器启动后执行命名
FROM centos:7.7.1908
RUN yum install httpd -y
CMD [“httpd”,”-D”,”FOREGROUND”]

docker网络模型
1.NAT(默认)Bridge
docker exec -ti alpine /bin/sh

2.None 不配置任何网络
docker run -ti –rm –net=none alpine /bin/sh

3.Host 与主机共享网络 性价比最高
docker run -ti –rm –net=host alpine /bin/sh

4.联合网络 与另外一个运行中的容器共享网络
docker run -ti –rm –net=container:2b5c6a379cda alpine:test /bin/sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值