- 实例使用
常见问题">
常见问题
观看记录
https://www.bilibili.com/video/BV1gr4y1U7CY?p=61&t=504.4
编写 Dockerfile
FROM centos:7
MAINTAINER chu<doraehmon@163.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
# RUN yum -y install glibc.i686
# RUN mkdir /usr/local/java
# #ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
# ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
# #配置java环境变量
# ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
# ENV JRE_HOME $JAVA_HOME/jre
# ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
# ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
构建:在当前目录下执行
docker build -t 新镜像名字:TAG .
docker build -t centosjava8:1.5 . //注意最后面的这个 . 不能丢
注意:centos 不要是用最新版,不然会报错
如果拉取最新的 centos 8 会导致 yum 找不到对应版本的镜像库
当创建完成之后,查看当前的镜像
运行
docker run -it 新镜像名字:TAG
// 命令说明
// 使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it imageId /bin/bash
实例使用
编写 Dockerfile
FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY nginx-docker/default.conf /etc/nginx/conf.d/default.conf
- 自定义构建镜像的时候基于Dockerfile来构建。
- FROM nginx 命令的意思该镜像是基于 nginx:latest 镜像而构建的。
- COPY dist/ /usr/share/nginx/html/ 命令的意思是将项目根目录下dist文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下。
- COPY nginx/default.conf /etc/nginx/conf.d/default.conf 命令的意思是将nginx-docker目录下的default.conf 复制到 etc/nginx/conf.d/default.conf,用本地的 default.conf 配置来替换nginx镜像里的默认配置。
在项目根目录下创建 nginx-docker 文件夹,该文件夹下新建文件 default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/error.log error;
#location /api/ {
# rewrite /api/(.*) /$1 break;
# proxy_pass http://172.18.0.3:9728;
#}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
目录结构:
基于该 Dockerfile构建镜像
docker build -t dockervue . // -t 是给镜像命名 . 是基于当前目录的Dockerfile来构建镜像
//注意:需要在当前目录下执行
创建容器
docker run --name=dockervue5 -d -p 3005:80 -v /myDataVolume:/usr/share/nginx/html dockervue
进入某个容器中
进入这个镜像中查看当前的配置信息是怎样的?
并且进行修改
如何做目录映射呢 因为进入容器之中在修改文件还是比较复杂的!
运行报错
docker 报错
https://blog.csdn.net/dreamerrrrrr/article/details/108632723
docker: Error response from daemon: driver failed programming external connectivity on endpoint dockervue (39a1b295995e785a6f67d3e233b6224eca2e8df00ec8a1fafa06e2690aa0e9ef): (iptables failed: iptables —wait -t nat -A DOCKER -p tcp -d 0/0 —dport 3000 -j DNAT —to-destination 172.17.0.2:3000 ! -i docker0: iptables: No chain/target/match by that name.
docker启动报错 (iptables failed: iptables —wait -t nat -A DOCKER -p tcp -d 0/0 —dport
https://www.cnblogs.com/kala00k/p/11572929.html
docker 创建完容器就自动退出
常见问题
错误一:
WARNING: IPv4 forwarding is disabled. Networking will not work
执行
systemctl restart docke
相关文章
https://juejin.cn/post/6844903962236157960
错误二
原因:centos 8 不兼容的问题