我们先创建一个目录,在目录里创建Dockerfile
- [root@docker-3 ~]# mkdir mynginx
- [root@docker-3 ~]# cd mynginx
- [root@docker-3 ~]# vim Dockerfile
Dockerfile的内容
- FROM daocloud.io/library/centos:7
- RUN buildDeps='readline-devel pcre-devel openssl-devel gcc telnet wget curl make' && \
- yum -y install $buildDeps && \
- yum clean all
- RUN wget https://nginx.org/download/nginx-1.24.0.tar.gz && \
- tar zfx nginx-1.24.0.tar.gz -C /opt
- RUN cd /opt/nginx-1.24.0 && \
- mkdir /usr/local/nginx && \
- ./configure --prefix=/usr/local/nginx \
- --with-http_ssl_module \
- --with-http_stub_status_module && \
- make && make install && \
- rm -rf /usr/local/nginx/html/* && \
- echo "nihao" > /usr/local/nginx/html/index.html && \
- cd / && rm -rf /opt/nginx-1.24.0 && \
- ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- ENV PATH /usr/local/nginx/sbin:$PATH
- WORKDIR /usr/local/nginx
- EXPOSE 80
- CMD ["nginx","-g","daemon off;"]
开始构建,别忘了最后的 .
[root@docker-3 mynginx]# docker build -t nginx:v1 .
- [+] Building 241.2s (9/9) FINISHED docker:default
- => [internal] load build definition from Dockerfile 0.0s
- => => transferring dockerfile: 824B 0.0s
- => [internal] load .dockerignore 0.0s
- => => transferring context: 2B 0.0s
- => [internal] load metadata for daocloud.io/library/centos:7 1.3s
- => CACHED [1/5] FROM daocloud.io/library/centos:7@sha256:fe2347002c630d5d61bf2f28f21246ad1c21cc6fd343e70b4cf1e5102f8711a9 0.0s
- => [2/5] RUN buildDeps='readline-devel pcre-devel openssl-devel gcc telnet wget curl make' && yum -y install $buildDe 210.5s
- => [3/5] RUN wget https://nginx.org/download/nginx-1.24.0.tar.gz && tar zfx nginx-1.24.0.tar.gz -C /opt 7.8s
- => [4/5] RUN cd /opt/nginx-1.24.0 && mkdir /usr/local/nginx && ./configure --prefix=/usr/local/nginx --with-ht 21.0s
- => [5/5] WORKDIR /usr/local/nginx 0.0s
- => exporting to image 0.6s
- => => exporting layers 0.6s
- => => writing image sha256:0cef6f4d7d9fdb2438160b5df566e442fe72b2eb04150ac0504d5af34472fb9d 0.0s
- => => naming to docker.io/library/nginx:v1 0.0s
查看镜像
- [root@docker-3 mynginx]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- nginx v1 0cef6f4d7d9f 10 seconds ago 325MB
- [root@docker-3 mynginx]# docker run -itd --name nginxv1 -p 80:80 nginx:v1
- 3ba682f5bb1f12b6c318903e6d8e83fe22c7e9769c196d361862152da2d4c29d
- [root@docker-3 mynginx]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 3ba682f5bb1f nginx:v1 "nginx -g 'daemon of…" 7 seconds ago Up 7 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginxv1
创建目录,在目录里创建Dockerfile
- [root@docker-2 ~]# mkdir myRedis
- [root@docker-2 ~]# cd myRdis
- [root@docker-2 ~]# vim Dockerfile
- FROM daocloud.io/library/centos:7
- RUN yum -y install gcc gcc-c++ net-tools make wget \
- && mkdir -p /data/application/ \
- && wget https://download.redis.io/releases/redis-6.2.7.tar.gz \
- && tar zxf redis-6.2.7.tar.gz -C /data/application/
- RUN cd /data/application \
- && mv redis-6.2.7/ redis \
- && cd redis/ \
- && make \
- && sed -i -e 's/bind 127.0.0.1 -::1/bind 0.0.0.0/g' ./redis.conf
- EXPOSE 6379
- ENTRYPOINT /data/application/redis/src/redis-server /data/application/redis/redis.conf
构建
[root@docker-2 myRedis]# docker build -t redis:v1 .
- [+] Building 0.1s (7/7) FINISHED docker:default
- => [internal] load build definition from Dockerfile 0.0s
- => => transferring dockerfile: 591B 0.0s
- => [internal] load .dockerignore 0.0s
- => => transferring context: 2B 0.0s
- => [internal] load metadata for daocloud.io/library/centos:7 0.0s
- => [1/3] FROM daocloud.io/library/centos:7 0.0s
- => CACHED [2/3] RUN yum -y install gcc gcc-c++ net-tools make wget && mkdir -p /data/application/ && wget https://d 0.0s
- => CACHED [3/3] RUN cd /data/application && mv redis-6.2.7/ redis && cd redis/ && make && mkdir /data/appli 0.0s
- => exporting to image 0.0s
- => => exporting layers 0.0s
- => => writing image sha256:15c74862351b269ae259a12d6c8d43a4e68dd97db5363acdd7e965c885b33a15 0.0s
- => => naming to docker.io/library/redis:v1 0.0s
- [root@docker-2 myRedis]# vim Dockerfile
- [root@docker-2 myRedis]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- redis v1 15c74862351b 6 days ago 672MB
- [root@docker-2 myRedis]# docker run -itd --name redis1 -p 6379:6379 redis:v1
- dc76e2462b7ae0a63ed673bc2f247302a1bec336bc6320a5f67c5cd2051ebf41
- [root@docker-2 myRedis]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- dc76e2462b7a redis:v1 "/bin/sh -c '/data/a…" 4 seconds ago Up 3 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis1
- [root@docker-2 myRedis]# docker exec -it redis1 /bin/sh
- sh-4.2# ls
- anaconda-post.log bin data dev etc home lib lib64 media mnt opt proc redis-6.2.7.tar.gz root run sbin srv sys tmp usr var
- sh-4.2# cd data/application/redis/
- sh-4.2# ./src/redis-cli
- 127.0.0.1:6379> ping
- PONG
- 127.0.0.1:6379>
我这里只修改了配置文件的bind, 如果有需要其他使用sed更改即可