docker1

docker run -it  ID/Name /bin/bash  运行

docker exec -it ID/Name /bin/bash 进入

docker commit -p ID/Name ID/Name2 固化提交镜像

docker save ID/Name > ID/Name.tar  导出镜像

docker load < ID/Name.tar 导入镜像

docker tag ID Name  标签打印

Docker run hello-world 2>&1 >>/dev/null   把容器日志打印到容器里面的标准输出在用 docker logs ID/Name 查看日志

 docker inspect 81d794eaac23 查看容器运行等细节

 

 

非常重要操作

映射端口

Docker run -p 容器外端口:容器内端口

docker run --rm --name mynginx -d -p81:80 wang055qi/nginx

挂载数据卷

Docker run -v 容器外目录:容器内目录

docker run -d --rm --name mynginx -d -p81:80 -v/root/html:/usr/share/nginx/html wang055qi/nginx

传递环境变量

docker run -e 环境变量key:环境变量value

Docker run -d —rm -e Java_HOME=/usr/java/ wang055qi/nginx printenv

容器内安装软件

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

 

 

Dockerfile规则

#为注释

建议指定(大写)内容(小写)

Docker是按顺序执行dockerfile里指令集合的(从上往下)

每一个Dockerfile的第一个非注释行指令,必须是“FROM”指令,用于为镜像文件构建过程中,指定基准镜像,后续的指令运行于此基准镜像所提供的运行环境中。(实践中,基准镜像可以是任何可用镜像文件,默认情况下,docker build 会在docker 主机(本地)上查找指定的镜像文件,当其他本地不存在时,则会从Docker registry(远端)上拉取所需镜像文件。)

4 核心的Dockerfile 指令

*USER/WORKDIR指令

*ADD/EXPOSE指令

*RUN/ENV指令

*CMD/ENTRYPOINT指令

/data/dockerfile/Dockerfile 

FROM stanleyws/nginx:v1.12.2    from 基础镜像

ADD index.html /usr/share/nginx/html/index.html   往容器添加文件

EXPOSE 80 对外端口跟-P 一起使用

 

/data/dockerfile/Dockerfile 

FROM centos 

ENV VER 9.9.4-74.el7_6.1 

RUN yum install bind-$VER -y   在构建镜像是时候执行命令

以上指令是构建镜像时帮你完成的

1.CMD指令

/data/dockerfile/Dockerfile 

FROM centos 

RUN yum install httpd -y 

CMD ["httpd","-D","FOREGROUND"]

 

FROM centos

ADD entrypoint.sh /entrypoint.sh    容器外的脚步加到容器里

RUN yum install epel-release -q -y && yum install nginx -y 

ENTRYPOINT /entrypoint.sh 

 

 

综合实验

FROM stanleyws/nginx:v1.12.2 

USER root 

ENV www /usr/share/zoneinfo/Asia/shanghai /etc/localtime &&\

echo 'Asia/Shanghai' >/etc/timezone 

WORKDIR $www 

ADD index.html  $www/index.html

ADD demo.od.com.conf $CONF /demo.od.com.conf 

EXPOSE 80 

CMD ["nginx","g","damon off;"]

index.html 

 

 

 

[root@docker  dockerfile]#  wget www.baidu.com -O index.html 

[root@docker  dockerfile]#  vi demo.od.com.conf 

server {

listen 80;

server_name demo.od.com;

root /usr/share/nginx/html;

}

 

 

docker网络模型

NAT(默认)配置在daemon.json配置

#docker run -it —rm alpine /bin/bash

#ip addr

None(不提供网络服务,只使用docker的计算能力) 

#docker run -it —rm —net=none alpine /bin/bash

#ip add

Host(跟主机同样的网络)

#docker run -it —rm —net=host alpine /bin/bash

#ip add

联合网络(两个容器共享一个网络空间)

posted @ 2020-11-27 11:20  漂流人生  阅读(97)  评论(0)    收藏  举报