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
联合网络(两个容器共享一个网络空间)

浙公网安备 33010602011771号