chrisluiz16

Day 9

May 30th, 2023
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.86 KB | None | 0 0
  1.  
  2.  
  3.  
  4. #---------------------------------------------------- Container creatio [Task 1] --------------------------------------------#
  5.  
  6.  
  7. [ec2-user@ip-172-31-41-59 flask]$ docker container run --name mycntr --rm -d -it alpine:latest
  8. Unable to find image 'alpine:latest' locally
  9. latest: Pulling from library/alpine
  10. 8a49fdb3b6a5: Pull complete
  11. Digest: sha256:02bb6f428431fbc2809c5d1b41eab5a68350194fb508869a33cb1af4444c9b11
  12. Status: Downloaded newer image for alpine:latest
  13. c6f24c2597fd7ea5f7ec0de948f4a67440b6daeb041de8d308b6b81cd7415308
  14.  
  15.  
  16. [[ec2-user@ip-172-31-41-59 flask]$ docker container attach mycntr
  17. / #
  18. / #
  19. / #
  20. / # apk update
  21. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz
  22. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz
  23. v3.18.0-435-g1a184caca7f [https://dl-cdn.alpinelinux.org/alpine/v3.18/main]
  24. v3.18.0-442-ga3b139e3955 [https://dl-cdn.alpinelinux.org/alpine/v3.18/community]
  25. OK: 20064 distinct packages available
  26. / #
  27. / # apk add vim python3 --no-cache
  28. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz
  29. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz
  30. Executing busybox-1.36.0-r9.trigger
  31. OK: 81 MiB in 35 packages
  32.  
  33. [ec2-user@ip-172-31-41-59 flask]$ docker container ls -a
  34. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  35.  
  36.  
  37.  
  38. #---------------------------------------------------- Image creation [Task 1.1] --------------------------------------------#
  39.  
  40.  
  41. [ec2-user@ip-172-31-41-59 flask]$ cat Dockerfile
  42. FROM alpine:latest
  43.  
  44. RUN apk update
  45.  
  46. RUN apk add vim python3 --no-cache
  47.  
  48. CMD ["/bin/sh"]
  49. [ec2-user@ip-172-31-41-59 flask]$
  50. [ec2-user@ip-172-31-41-59 flask]$
  51. [ec2-user@ip-172-31-41-59 flask]$ docker image build -t myimage:1 .
  52. Sending build context to Docker daemon 2.048kB
  53. Step 1/4 : FROM alpine:latest
  54. ---> 5e2b554c1c45
  55. Step 2/4 : RUN apk update
  56. Removing intermediate container 26921be3794e
  57. ---> 3a76943f478b
  58. Successfully built 3a76943f478b
  59. Successfully tagged myimage:1
  60. [ec2-user@ip-172-31-41-59 flask]$
  61. [ec2-user@ip-172-31-41-59 flask]$ docker image ls
  62. REPOSITORY TAG IMAGE ID CREATED SIZE
  63. myimage 1 3a76943f478b About a minute ago 78.1MB
  64. alpine latest 5e2b554c1c45 2 weeks ago 7.33MB
  65. [ec2-user@ip-172-31-41-59 flask]$
  66. [ec2-user@ip-172-31-41-59 flask]$
  67. [ec2-user@ip-172-31-41-59 flask]$
  68. [ec2-user@ip-172-31-41-59 flask]$ docker attach c1
  69. / #
  70. / # which vim
  71. /usr/bin/vim
  72. / #
  73. / #
  74. / # which python3
  75. /usr/bin/python3
  76. / #
  77.  
  78. [ec2-user@ip-172-31-41-59 flask]$ docker container ls -a
  79. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  80.  
  81.  
  82. #---------------------------------------------------- Workdir [Task 1.2] --------------------------------------------#
  83.  
  84. [ec2-user@ip-172-31-41-59 flask]$ docker image pull httpd:alpine
  85. alpine: Pulling from library/httpd
  86.  
  87. [ec2-user@ip-172-31-41-59 flask]$ docker image inspect httpd:alpine
  88. [
  89. "WorkingDir": "/usr/local/apache2",
  90.  
  91.  
  92. [ec2-user@ip-172-31-41-59 flask]$ docker container run --name apache2 -d --rm -it httpd:alpine sh
  93. 008cc4f46631a18bca518e25703dd14d6cdb3f7bf5418dfb5d03d762e9f23680
  94. [ec2-user@ip-172-31-41-59 flask]$
  95. [ec2-user@ip-172-31-41-59 flask]$
  96. [ec2-user@ip-172-31-41-59 flask]$ docker container attach apache2
  97. /usr/local/apache2 #
  98. /usr/local/apache2 # touch a.txt
  99. /usr/local/apache2 # ls
  100. a.txt bin build cgi-bin conf error htdocs icons include logs modules
  101. /usr/local/apache2 #
  102. /usr/local/apache2 #
  103. [ec2-user@ip-172-31-41-59 flask]$ docker container ls -a
  104. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  105.  
  106.  
  107.  
  108. [ec2-user@ip-172-31-41-59 flask]$ cat Dockerfile
  109. FROM alpine:latest
  110.  
  111. RUN mkdir /var/mydir/
  112.  
  113. WORKDIR /var/mydir/
  114.  
  115. COPY ./abcd.txt .
  116.  
  117. RUN touch myfile.txt
  118.  
  119. RUN apk update
  120.  
  121. RUN apk add vim python3 --no-cache
  122.  
  123. CMD ["/bin/sh"]
  124.  
  125. [ec2-user@ip-172-31-41-59 flask]$ echo "This is a abcd.txt file" > abcd.txt
  126. [ec2-user@ip-172-31-41-59 flask]$ ls
  127. abcd.txt Dockerfile
  128. [ec2-user@ip-172-31-41-59 flask]$ docker image build -t myimage:2 .
  129. Sending build context to Docker daemon 3.072kB
  130. Step 1/8 : FROM alpine:latest
  131. Successfully built 5019b8d59a49
  132. Successfully tagged myimage:2
  133. [ec2-user@ip-172-31-41-59 flask]$
  134. [ec2-user@ip-172-31-41-59 flask]$
  135. [ec2-user@ip-172-31-41-59 flask]$ docker container run --name c2 -d -it --rm myimage:2
  136. 56313aaad4a5419b10a089774ded920e927ea89808a1d3802e8180526bfd225b
  137. [ec2-user@ip-172-31-41-59 flask]$
  138. [ec2-user@ip-172-31-41-59 flask]$ docker container attach c2
  139. /var/mydir #
  140. /var/mydir # ls
  141. abcd.txt myfile.txt
  142. /var/mydir #
  143. /var/mydir #
  144. /var/mydir # cat abcd.txt
  145. This is a abcd.txt file
  146. /var/mydir #
  147. /var/mydir #
  148. /var/mydir # which vim
  149. /usr/bin/vim
  150. /var/mydir #
  151. /var/mydir # which python3
  152. /usr/bin/python3
  153. /var/mydir #
  154. /var/mydir #
  155. [ec2-user@ip-172-31-41-59 flask]$ docker container ls -a
  156. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  157. [ec2-user@ip-172-31-41-59 flask]$
  158.  
  159.  
  160. #---------------------------------------------------- Python3 app run in local machine [Task 2] --------------------------------------------#
  161.  
  162.  
  163. [ec2-user@ip-172-31-41-59 flask]$ sudo yum install python3 python3-pip -y
  164. [ec2-user@ip-172-31-41-59 flask]$ mkdir flask-project
  165. [ec2-user@ip-172-31-41-59 flask]$ cd flask-project/
  166. [ec2-user@ip-172-31-41-59 flask-project]$ cat app.py
  167. from flask import Flask
  168.  
  169. app = Flask(__name__)
  170.  
  171. @app.route('/')
  172. def index():
  173.  
  174. return '<h1><center>This is Flask Application - Version1 </center></h1>'
  175.  
  176. app.run(host='0.0.0.0', port=5000)
  177.  
  178. [ec2-user@ip-172-31-41-59 flask-project]$
  179. [ec2-user@ip-172-31-41-59 flask-project]$ ls
  180. app.py requirements.txt
  181. [ec2-user@ip-172-31-41-59 flask-project]$
  182. [ec2-user@ip-172-31-41-59 flask-project]$
  183. [ec2-user@ip-172-31-41-59 flask-project]$ pip3 install -r requirements.txt
  184. Defaulting to user installation because normal site-packages is not writeable
  185. Collecting flask
  186. Downloading Flask-2.3.2-py3-none-any.whl (96 kB)
  187.  
  188. [ec2-user@ip-172-31-41-59 flask-project]$ python3 app.py
  189. * Serving Flask app 'app'
  190. * Debug mode: off
  191. WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
  192. * Running on all addresses (0.0.0.0)
  193. * Running on http://127.0.0.1:5000
  194. * Running on http://172.31.41.59:5000
  195. Press CTRL+C to quit
  196. 103.104.44.50 - - [30/May/2023 09:26:17] "GET / HTTP/1.1" 200 -
  197. 103.104.44.50 - - [30/May/2023 09:26:17] "GET /favicon.ico HTTP/1.1" 404 -
  198. 103.104.44.50 - - [30/May/2023 09:26:24] "GET / HTTP/1.1" 200 -
  199.  
  200.  
  201.  
  202.  
  203. #---------------------------------------------------- Python3 temporary container creation [Task 3] --------------------------------------------#
  204.  
  205.  
  206. [ec2-user@ip-172-31-41-59 flask-project]$ docker container run --name flask -p 80:5000 -d -v $(pwd):/var/flaskapp -it alpine:latest
  207. a2e7990acfea98716b78cfede51c03df4ca643e932af6363621ef56feb4e8f50
  208. [ec2-user@ip-172-31-41-59 flask-project]$
  209. [ec2-user@ip-172-31-41-59 flask-project]$
  210. [ec2-user@ip-172-31-41-59 flask-project]$ docker container attach flask
  211. / #
  212. / #
  213. ~ # cd /var/flaskapp/
  214. /var/flaskapp #
  215. ~ # ls -l /var/flaskapp/
  216. total 8
  217. -rw-r--r-- 1 1000 1000 194 May 30 09:25 app.py
  218. -rw-r--r-- 1 1000 1000 6 May 30 09:21 requirements.txt
  219. ~ #
  220. ~ #/var/flaskapp # apk update
  221. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz
  222. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz
  223.  
  224. /var/flaskapp # apk add python3 vim py3-pip --no-cache
  225. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz
  226. fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz
  227.  
  228. /var/flaskapp # pip3 install -r requirements.txt
  229. Collecting flask (from -r requirements.txt (line 1))
  230. Downloading Flask-2.3.2-py3-none-any.whl (96 kB)
  231. ???????????????????????????????????????? 96.9/96.9 kB 7.1 MB/s eta 0:00:00
  232. Collecting Werkzeug>=2.3.3 (from flask->-r requirements.txt (line 1))
  233.  
  234. /var/flaskapp # python3 app.py
  235. * Serving Flask app 'app'
  236. * Debug mode: off
  237. WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
  238. * Running on all addresses (0.0.0.0)
  239. * Running on http://127.0.0.1:5000
  240. * Running on http://172.17.0.2:5000
  241. Press CTRL+C to quit
  242. read escape sequence
  243.  
  244. [ec2-user@ip-172-31-41-59 flask-project]$ docker container logs flask
  245. 103.104.44.50 - - [30/May/2023 09:38:55] "GET / HTTP/1.1" 200 -
  246. 103.104.44.50 - - [30/May/2023 09:38:55] "GET /favicon.ico HTTP/1.1" 404 -
  247. 103.104.44.50 - - [30/May/2023 09:38:56] "GET / HTTP/1.1" 200 -
  248. 103.104.44.50 - - [30/May/2023 09:38:56] "GET / HTTP/1.1" 200 -
  249. 103.104.44.50 - - [30/May/2023 09:38:56] "GET / HTTP/1.1" 200 -
  250.  
  251.  
  252. #---------------------------------------------------- Python3 image & container creation [Task 4] --------------------------------------------#
  253.  
  254.  
  255. [ec2-user@ip-172-31-41-59 flask-project]$ vim Dockerfile
  256. [ec2-user@ip-172-31-41-59 flask-project]$
  257. [ec2-user@ip-172-31-41-59 flask-project]$
  258. [ec2-user@ip-172-31-41-59 flask-project]$ cat Dockerfile
  259. FROM alpine:latest
  260.  
  261. WORKDIR /var/flaskapp
  262.  
  263. COPY ./code/ .
  264.  
  265. RUN apk update && apk add vim python3 py3-pip --no-cache
  266.  
  267. RUN pip3 install -r requirements.txt
  268.  
  269. CMD ["python3","app.py"]
  270.  
  271. [ec2-user@ip-172-31-41-59 flask-project]$
  272. [ec2-user@ip-172-31-41-59 flask-project]$
  273. [ec2-user@ip-172-31-41-59 flask-project]$ docker image build -t flaskapp:v1 .
  274. Sending build context to Docker daemon 4.608kB
  275. Step 1/6 : FROM alpine:latest
  276. Successfully built 1d3b38806471
  277. Successfully tagged flaskapp:v1
  278.  
  279. REPOSITORY TAG IMAGE ID CREATED SIZE
  280. flaskapp v1 1d3b38806471 About a minute ago 110MB
  281. myimage 2 5019b8d59a49 38 minutes ago 78.1MB
  282. myimage 1 3a76943f478b About an hour ago 78.1MB
  283. httpd alpine d7544b312621 2 weeks ago 59.1MB
  284. alpine latest 5e2b554c1c45 2 weeks ago 7.33MB
  285.  
  286. [ec2-user@ip-172-31-41-59 flask-project]$ docker container run --name version1 -d -p 8081:5000 flaskapp:v1
  287. 3e60f688a43b1fb5d4c89377c5caa5df862cf683206f135dda9af30d263cb66a
  288.  
  289.  
  290.  
  291. ##________Version2 build _________##
  292.  
  293.  
  294.  
  295. [ec2-user@ip-172-31-41-59 flask-project]$ cat code/app.py
  296. from flask import Flask
  297.  
  298. app = Flask(__name__)
  299.  
  300. @app.route('/')
  301. def index():
  302.  
  303. return '<h1><center>This is Flask Application - Version2 </center></h1>'
  304.  
  305. app.run(host='0.0.0.0', port=5000)
  306.  
  307.  
  308. [ec2-user@ip-172-31-41-59 flask-project]$ docker image build -t flaskapp:v2 .
  309. Sending build context to Docker daemon 4.608kB
  310. Step 1/6 : FROM alpine:latest
  311.  
  312. [ec2-user@ip-172-31-41-59 flask-project]$
  313. [ec2-user@ip-172-31-41-59 flask-project]$
  314. [ec2-user@ip-172-31-41-59 flask-project]$ docker container run --name version2 -d -p 8082:5000 flaskapp:v2
  315. fb1251d88648592792aa40f7983aa42ef63e8aa20ab90b889cccbe4469c8b4ca
  316.  
  317.  
  318. ##________Version3 build _________##
  319.  
  320.  
  321. [ec2-user@ip-172-31-41-59 flask-project]$ vim code/app.py
  322. [ec2-user@ip-172-31-41-59 flask-project]$
  323. [ec2-user@ip-172-31-41-59 flask-project]$
  324. [ec2-user@ip-172-31-41-59 flask-project]$ docker image build -t flaskapp:v3 .
  325. Sending build context to Docker daemon 4.608kB
  326. Step 1/6 : FROM alpine:latest
  327. Successfully built 072eff3ba344
  328. Successfully tagged flaskapp:v3
  329.  
  330. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
  331. NAMES
  332. 848c73f4e1b2 flaskapp:v3 "python3 app.py" 14 minutes ago Up 14 minutes 0.0.0.0:8083->5000/tcp, :::8083->5000/tcp version3
  333. fb1251d88648 flaskapp:v2 "python3 app.py" 17 minutes ago Up 17 minutes 0.0.0.0:8082->5000/tcp, :::8082->5000/tcp version2
  334. 3e60f688a43b flaskapp:v1 "python3 app.py" 21 minutes ago Up 21 minutes 0.0.0.0:8081->5000/tcp, :::8081->5000/tcp version1
  335. [ec2-user@ip-172-31-41-59 flask-project]$
  336. [ec2-user@ip-172-31-41-59 flask-project]$
  337.  
Advertisement
Add Comment
Please, Sign In to add comment