之前没有封装过docker文件,所以这个是一个尝试的记录。
我的目录文件如下:
这里面的这个 requirements.txt 是自动生成的。生成方法如下:
安装pipreqs:
pip install pipreqs
进入你的工程所在目录,然后输入下面的命令,等待命令运行结束后,就会生成requirements.txt文件了。
(playwright_tianmao) (base) kaka@KakadeMacBook-Pro playwright_tianmao % pipreqs --encoding=utf8 ./project INFO: Successfully saved requirements file in ./project/requirements.txt
编写Dockerfile
FROM python:3.10 WORKDIR ./project ADD . . RUN pip install -r requirements.txt CMD ["python", "./src/tian_mao.py"]
Dockerfile 文件这么写,具体参数看这Docker Dockerfile。
Docker命令行
好了,重头戏来了,先cd 到文件夹内部,当然需要把Docker这个程序运行起来。
现在执行docker images
是没有我新打包的。
(base) kaka@KakadeMacBook-Pro ~ % docker images REPOSITORY TAG IMAGE ID CREATED SIZE clickhouse/clickhouse-server <none> 854810a3ea35 2 months ago 705MB redis alpine 7bf9ac7d3b84 3 months ago 28.1MB mysql/mysql-server 8.0 55af6abb77a6 4 months ago 527MB fp2_0-8.1/app latest 53b297f8c7a6 6 months ago 1.61GB clickhouse/clickhouse-server latest d846490c0466 14 months ago 794MB prom/prometheus latest ccf2871d6122 14 months ago 198MB grafana/grafana-enterprise latest 05048bc21afe 15 months ago 290MB prom/alertmanager latest 44a71f29f42b 18 months ago 55.3MB
我们执行命令:
(playwright_tianmao) (base) kaka@KakadeMacBook-Pro project % docker build -t playwright:tian_mao . [+] Building 218.8s (9/9) FINISHED => [internal] load build definition from Dockerfile 0.2s => => transferring dockerfile: 160B 0.1s => [internal] load .dockerignore 0.1s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/python:3.10 18.5s => [1/4] FROM docker.io/library/python:3.10@sha256:dbbfcbf95f6b596d2be1d8f3b368016619f78f829facf6f2e361bea1151794e5 156.0s => => resolve docker.io/library/python:3.10@sha256:dbbfcbf95f6b596d2be1d8f3b368016619f78f829facf6f2e361bea1151794e5 0.0s => => sha256:dbbfcbf95f6b596d2be1d8f3b368016619f78f829facf6f2e361bea1151794e5 2.60kB / 2.60kB 0.0s => => sha256:ac9d381bd1e98fa8759f80ff42db63c8fce4ac9407b2e7c8e0f031ed9f96432b 5.14MB / 5.14MB 2.5s => => sha256:aa9c5b49b9db3dd2553e8ae6c2081b77274ec0a8b1f9903b0e5ac83900642098 10.66MB / 10.66MB 8.8s => => sha256:d1500c47f0bbf08f47ab4d297468e7831747f574b85f9f6dd673e63ff0a9b401 2.22kB / 2.22kB 0.0s => => sha256:07de2f474278e926aad908f01856d8ba91e04af47110b33d27878f53ef6ff798 8.63kB / 8.63kB 0.0s => => sha256:94a23d3cb5be24659b25f17537307e7f568d665244f6a383c1c6e51e31080749 53.60MB / 53.60MB 34.5s => => sha256:841dd868500b6685b6cda93c97ea76e817b427d7a10bf73e9d03356fac199ffd 54.67MB / 54.67MB 33.7s => => sha256:d4bb9078a4a2954fb77553c7f66912068fb62ff7cf431160389ebd36fab5c7ad 189.42MB / 189.42MB 129.1s => => sha256:a2a3f568fa148d3f688d658df426874f3bd527d8d407de9abe0677b1d96dd4a4 6.16MB / 6.16MB 36.9s => => sha256:fbde58cfb3dc7784a2ea058b9322cd8b5aa216c82c7c165afaf5ef0ea9a89f8d 18.70MB / 18.70MB 55.5s => => extracting sha256:94a23d3cb5be24659b25f17537307e7f568d665244f6a383c1c6e51e31080749 2.3s => => sha256:b4487881872bb6c801e24159eeaab3e06f631d9d75ce232f63bd7eabefd653bd 234B / 234B 37.7s => => extracting sha256:ac9d381bd1e98fa8759f80ff42db63c8fce4ac9407b2e7c8e0f031ed9f96432b 0.4s => => sha256:eb92ccb4c378d424537b97a66a474219c692b2d507fb2bc41240d254b90d8983 2.35MB / 2.35MB 41.6s => => extracting sha256:aa9c5b49b9db3dd2553e8ae6c2081b77274ec0a8b1f9903b0e5ac83900642098 0.5s => => extracting sha256:841dd868500b6685b6cda93c97ea76e817b427d7a10bf73e9d03356fac199ffd 3.3s => => extracting sha256:d4bb9078a4a2954fb77553c7f66912068fb62ff7cf431160389ebd36fab5c7ad 21.0s => => extracting sha256:a2a3f568fa148d3f688d658df426874f3bd527d8d407de9abe0677b1d96dd4a4 1.2s => => extracting sha256:fbde58cfb3dc7784a2ea058b9322cd8b5aa216c82c7c165afaf5ef0ea9a89f8d 1.4s => => extracting sha256:b4487881872bb6c801e24159eeaab3e06f631d9d75ce232f63bd7eabefd653bd 0.0s => => extracting sha256:eb92ccb4c378d424537b97a66a474219c692b2d507fb2bc41240d254b90d8983 0.3s => [internal] load build context 0.0s => => transferring context: 11.04kB 0.0s => [2/4] WORKDIR ./project 0.5s => [3/4] ADD . . 0.0s => [4/4] RUN pip install -r requirements.txt 42.4s => exporting to image 1.0s => => exporting layers 1.0s => => writing image sha256:281e004ab42d5b4314a4216eb1552b9cff68dcb55afdcf564b88a2fb8985b068 0.0s => => naming to docker.io/library/playwright:tian_mao 0.0s Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
再次执行docker images:
(base) kaka@KakadeMacBook-Pro ~ % docker images REPOSITORY TAG IMAGE ID CREATED SIZE playwright tian_mao 281e004ab42d 8 minutes ago 1.01GB clickhouse/clickhouse-server <none> 854810a3ea35 2 months ago 705MB redis alpine 7bf9ac7d3b84 3 months ago 28.1MB mysql/mysql-server 8.0 55af6abb77a6 4 months ago 527MB fp2_0-8.1/app latest 53b297f8c7a6 6 months ago 1.61GB clickhouse/clickhouse-server latest d846490c0466 14 months ago 794MB prom/prometheus latest ccf2871d6122 14 months ago 198MB grafana/grafana-enterprise latest 05048bc21afe 15 months ago 290MB prom/alertmanager latest 44a71f29f42b 18 months ago 55.3MB
删除:
(base) kaka@KakadeMacBook-Pro ~ % docker rmi 281e004ab42d Untagged: playwright:tian_mao Deleted: sha256:281e004ab42d5b4314a4216eb1552b9cff68dcb55afdcf564b88a2fb8985b068
然后:
docker load -i test_tianmao.tar
查看结果:
(base) kaka@KakadeMacBook-Pro project % docker load -i test_tianmao.tar Loaded image: playwright:tian_mao (base) kaka@KakadeMacBook-Pro project % docker images REPOSITORY TAG IMAGE ID CREATED SIZE playwright tian_mao 281e004ab42d 30 minutes ago 1.01GB clickhouse/clickhouse-server <none> 854810a3ea35 2 months ago 705MB redis alpine 7bf9ac7d3b84 3 months ago 28.1MB mysql/mysql-server 8.0 55af6abb77a6 4 months ago 527MB fp2_0-8.1/app latest 53b297f8c7a6 6 months ago 1.61GB clickhouse/clickhouse-server latest d846490c0466 14 months ago 794MB prom/prometheus latest ccf2871d6122 14 months ago 198MB grafana/grafana-enterprise latest 05048bc21afe 15 months ago 290MB prom/alertmanager latest 44a71f29f42b 18 months ago 55.3MB (base) kaka@KakadeMacBook-Pro project %
参考链接:
标签:ago,封装,MB,months,Mac,Docker,sha256,docker,latest From: https://www.cnblogs.com/kaka0318/p/17183362.html