Rumah >Operasi dan penyelenggaraan >Docker >Apakah maksud import dan eksport imej buruh pelabuhan?

Apakah maksud import dan eksport imej buruh pelabuhan?

WBOY
WBOYasal
2022-03-08 10:47:556327semak imbas

Dalam docker, import imej menggunakan perintah "muat [pilihan]" untuk menyalin imej semasa ke dalam imej baharu eksport menggunakan perintah "simpan [pilihan] imej" untuk menyimpan sejarah termasuk cermin semua maklumat tersebut.

Apakah maksud import dan eksport imej buruh pelabuhan?

Persekitaran pengendalian tutorial ini: sistem linux7.3, versi docker-1.13.1, komputer Dell G3.

Apakah maksud import dan eksport imej docker?

Dengan perkembangan teknologi kontena, banyak sistem aplikasi kini memilih untuk menggunakan bekas docker untuk penempatan, tetapi kadangkala bekas docker digunakan Kami akan menghadapi masalah semasa mengatur kerja Contohnya, aplikasi kami perlu bergantung pada imej pihak ketiga yang lain Jika pelayan tidak dapat menyambung ke rangkaian luaran daripada rangkaian dalaman pada masa ini, ia tidak akan digunakan. Berdasarkan situasi ini, docker secara rasmi menyokong import dan eksport imej dan bekas docker Kami boleh menyusun imej pada mesin yang boleh menyambung ke Internet, kemudian mengeksport imej atau bekas, dan akhirnya memuat naik imej atau bekas yang dieksport ke. pelayan intranet, dan kemudian Import imej atau bekas, dan itu sahaja.

Operasi import dan eksport imej dan bekas terutamanya melibatkan arahan berikut: simpan, muatkan, eksport dan import.

Semasa demonstrasi, kami menjana imej atau bekas secara tempatan, kemudian mengeksport imej atau bekas itu, dan akhirnya memuat naiknya ke pelayan Alibaba Cloud untuk menunjukkan fungsi import.

Kami menggunakan VS 2019 untuk mencipta projek ASP.NET Core MVC, tambah fail Dockerfile:

# 使用运行时镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
# 设置工作目录
WORKDIR /app
# 把目录下的内容都复制到当前目录下
COPY . .
# 暴露80端口
EXPOSE 80
# 运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerDemo.dll"]

dan kemudian terbitkan projek itu. Kami melihat imej docker sedia ada

dan kami dapat melihat bahawa terdapat hanya dua imej teras .net. Kami menjana imej:

 docker build -t dockerdemo .

Seperti yang ditunjukkan di bawah:

Lihat imej yang dijana

Kemudian kami menjalankan bekas berdasarkan imej yang dihasilkan, mula-mula semak bekas sedia ada:

Anda dapat melihat bahawa tiada bekas pada masa ini. Kami menjalankan bekas:

Anda dapat melihat bahawa bekas itu telah berjaya dijalankan.

2. Import dan eksport imej buruh pelabuhan

1 Eksport imej buruh pelabuhan

Perintah yang terlibat:

docker save [options]  images [images...]

Kami menggunakan Cermin di atas untuk tunjukkan eksport imej:

docker save -o dockerdemo.tar  dockerdemo

Seperti yang ditunjukkan di bawah:

Laluan ke fail yang dieksport ditentukan semasa mengeksport di sini. Jika tidak Tentukan laluan, yang lalai kepada folder semasa.

Atau anda boleh menggunakan arahan berikut untuk mengeksport:

docker save > dockerdemo.tar dockerdemo

di mana -o dan > menunjukkan output ke fail, dockerdemo.tar ialah fail sasaran yang dieksport dan dockerdemo ialah nama imej sumber.

Mari kita semak sama ada fail yang dieksport wujud secara setempat:

Anda boleh melihat bahawa fail yang baru dieksport sudah berada di bawah direktori.

2. Import imej docker

Kami mula-mula menggunakan XFtp untuk memuat naik fail imej yang dieksport di atas ke pelayan Alibaba Cloud

dan kemudian masukkan Direktori di mana fail itu terletak

Mari kita semak imej apa yang ada pada pelayan Alibaba Cloud:

Seperti yang dapat dilihat dari gambar di atas : Pada masa ini tiada imej pada pelayan Alibaba Cloud.

Pemuatan arahan import yang terlibat

docker load [options]

Seterusnya kami mengimport imej yang baru kami muat naik.

docker load -i dockerdemo.tar

Seperti yang ditunjukkan di bawah:

Atau anda juga boleh menggunakan arahan berikut

docker load < dockerdemo.tar

di mana -i(i Iaitu, import) dan < Kedua-dua arahan di atas akan berjaya mengimport imej dan metadata yang berkaitan, termasuk maklumat teg.

Lihat imej selepas mengimport:

Anda boleh melihat bahawa kami mempunyai imej yang baru kami import. Selepas mengimport imej, anda boleh menjalankan bekas berdasarkan imej dan akhirnya menjalankan aplikasi.

3. Import dan eksport kontena buruh pelabuhan

Seterusnya kami menunjukkan import dan eksport kontena.

1. Eksport bekas docker

Melibatkan eksport arahan.

docker export [options]  container

Kami mengeksport kontena yang dijana di atas:

docker export -o D:\containers\dockerdemocontainer.tar dockerdemo

Seperti yang ditunjukkan di bawah:

其中,-o表示输出的文件,这里指定了输出的路径,如果没有指定路径,则默认生成到当前文件夹。dockerdemocontainer.tar为目标文件,dockerdemo为源容器名。

我们查看目录下面是否生成了导出的容器:

2、docker容器的导入

我们首先把导出的容器使用XFTP上传到阿里云服务器。

涉及到的导入命令import。

docker import [options] file|URL|- [REPOSITORY[:TAG]]

如下图所示

我们导入刚才上传的容器

docker import dockerdemocontainer.tar dockerdemo:imp

dockerdemocontainer.tar表示要导入的容器,dockerdemo:imp表示导入后的镜像名称,imp表示给导入的镜像打tag。

如下图所示

然后我们查看镜像:

可以看到这时有我们刚才导入的镜像了,导入的镜像tag为imp。 

四、总结

下面我们来总结一下镜像和容器导入导出的区别:

  1. 镜像导入是一个复制的过程,容器导入是将当前容器变成一个新的镜像。
  2. docker save命令保存的是镜像(image),docker export命令保存的是容器(container)。
  3. export命令导出的tar文件略小于save命令导出的。
  4. 因为export导出的是容器,export导出的文件在import导入时,无法保留镜像所有的历史(即每一层layer信息),不能进行回滚操作。而save是根据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示:dockerdemo:latest是save导出load导入的,dockerdemo:imp是export导出import导入的。
  5. docker load不能对导入的镜像重命名,而docker import导入可以为镜像指定新名称。例如,上面导入的时候指定dockerdeom:imp。

对于是使用镜像导入导出还是使用容器导入导出该如何选择呢?有下面两点建议:

  1. 若是只想备份image,使用save和load。
  2. 若是在启动容器后,容器内容有变化,需要备份,则使用export和import。 

推荐学习:《docker视频教程

Atas ialah kandungan terperinci Apakah maksud import dan eksport imej buruh pelabuhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn