1. Create an empty directory $ cd /home/xm6f/dev $ mkdir myapp $ cd myapp/ 2.vim Dockerfile, the content is as follows: ## A basic python runtime environment FROM python ## Set the working directory WORKDIR /app ## Copy the current system folder contents to the container's app directory ADD ./app ## Install necessary dependency packages RUN pip install -r softwares.txt ## Open port for access outside the container EXPOSE 80 EXPOSE 3088 EXPOSE 8080 EXPOSE 8066 ## Define environment variable ENV NAME HELLO ## Run command CMD ["python","app.py"] 3. Install dependencies vim softwares.txt, the content is as follows: Flask Redis 4.vim app.py, the content is as follows: from flask import Flask from redis import Redis, RedisError import os import socket # Connect to Redis redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2) app = Flask(__name__) @app.route("/") def hello(): try: visits = redis.incr("counter") except RedisError: visits = "<i>cannot connect to Redis, counter disabled</i>" html = "<h3>Hello {name}!</h3>" \ "<b>Hostname:</b> {hostname}<br/>" \ "<b>Visits:</b> {visits}" return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits) if __name__ == "__main__": app.run(host='0.0.0.0', port=80) 5. Compile $ docker build -t myfirstapp . 6. Check that a new image has been generated $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE myfirstapp latest 01ea1129a831 2 hours ago 699MB 7. Start the image $ docker run -p 4000:80 myfirstapp It can also be run in the background: $ docker run -d -p 4000:80 myfirstapp 8. Access to the Services # curl http://localhost:4000 <h3>Hello world!</h3><b>Hostname:</b> a6655d0d7e74<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i> Or use a browser to access the service: http://192.168.1.160:4000 9. View the currently running image $ docker ps CONTAINER ID MAGE COMMAND CREATED STATUS PORTS NAMES 2db45cab2bb4 myfirstapp "python app.py" 2 minutes ago Up 2 minutes 0.0.0.0:4000->80/tcp elastic_wilson 10. Stop mirroring $ docker stop 2db45cab2bb4 The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
>>: js uses cookies to remember user page operations
Sometimes you need to access some static resource...
Table of contents 1. Introduction 2. Preparation ...
Table of contents Preface 1. Array traversal meth...
The solution to forgetting the initial password o...
1. Brief Introduction Vue.js allows you to define...
exhibit design Password strength analysis The pas...
1. Download the MySQL installation package (there...
The textarea tag size is immutable Copy code The c...
I recently took over a small program project, and...
First look at the effect: html <a href="#...
* address - address * blockquote - block quote * c...
The following demonstration is based on MySQL ver...
When doing database statistics, you often need to...
This article shares the specific code of Vue to r...
The virtual machine used is CentOS 8.4, which sim...