Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Docker dan Linux: Bagaimana untuk menggunakan bekas untuk penghantaran aplikasi yang berterusan?

Docker dan Linux: Bagaimana untuk menggunakan bekas untuk penghantaran aplikasi yang berterusan?

PHPz
PHPzasal
2023-07-29 08:19:491109semak imbas

Docker dan Linux: Bagaimana menggunakan bekas untuk penghantaran aplikasi yang berterusan?

Dengan perkembangan pesat pengkomputeran awan dan teknologi kontena, menggunakan bekas untuk penghantaran aplikasi yang berterusan telah menjadi salah satu kaedah penting dalam pembangunan perisian moden. Sebagai salah satu platform kontena yang paling popular, Docker digunakan secara meluas dalam persekitaran Linux. Artikel ini akan memperkenalkan cara menggunakan Docker dan Linux untuk melaksanakan penghantaran berterusan aplikasi dan menyediakan contoh kod yang sepadan.

  1. Pasang Docker dan konfigurasikan persekitaran

Mula-mula, kita perlu memasang Docker dalam persekitaran Linux. Untuk kaedah pemasangan khusus, sila rujuk dokumentasi rasmi atau tutorial berkaitan.

Selepas pemasangan selesai, kita perlu mengkonfigurasi persekitaran Docker. Untuk meningkatkan ketersediaan kontena, Docker Swarm boleh digunakan untuk melaksanakan kelompok kontena. Berikut ialah contoh mudah:

# 初始化Swarm
docker swarm init

# 创建一个专属网络
docker network create -d overlay mynetwork

# 在Swarm中部署服务
docker service create --name webapp --network mynetwork -p 80:80 mywebapp

Dalam contoh di atas, kami menggunakan perintah docker swarm init untuk memulakan Swarm dan mencipta rangkaian bernama mynetwork. Kemudian, gunakan perintah docker service create untuk menggunakan perkhidmatan bernama webapp dalam Swarm yang menggunakan rangkaian mynetwork dan tambah aplikasi Map ke port 80 daripada tuan rumah. docker swarm init命令初始化Swarm,并创建了一个名为mynetwork的网络。然后,使用docker service create命令在Swarm中部署了一个名为webapp的服务,该服务使用mynetwork网络,并将应用程序映射到主机的80端口。

  1. 创建Docker镜像

接下来,我们需要创建Docker镜像,以便在容器中运行应用程序。Docker镜像是一个只读的模板,它包含了运行应用程序所需的一切。

通常,我们可以使用Dockerfile来定义我们的镜像。以下是一个简单的示例:

FROM python:3.9-alpine

COPY requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

CMD ["python", "app.py"]

上述示例中,我们使用Python 3.9的Alpine版本作为基础镜像。然后,我们将requirements.txt文件复制到容器中的/app目录,并使用pip安装所需的依赖。最后,我们将整个应用程序复制到容器中,并定义了容器启动时的命令。

  1. 构建和发布Docker镜像

完成Dockerfile的编写后,我们可以使用docker build命令来构建镜像:

docker build -t mywebapp .

上述命令会构建一个名为mywebapp的镜像,并根据Dockerfile中的定义来运行构建过程。

构建完成后,我们可以使用docker push命令将镜像发布到镜像仓库:

docker push mywebapp

在这一步,我们可以使用Docker Hub等公共镜像仓库,也可以搭建自己的私有仓库。

  1. 运行容器

当镜像构建并发布完成后,我们可以使用docker run命令来在本地或远程主机上运行容器。

docker run -p 80:80 mywebapp

上述命令会在本地主机上启动一个容器,并将容器的80端口映射到主机的80端口。 这样,我们就可以通过访问主机的80端口来访问应用程序。

  1. 持续交付

使用Docker和Linux,我们可以实现应用程序的持续交付。下面是一个简单的示例脚本,用于自动化部署应用程序:

#!/bin/bash

# 拉取最新代码
git pull origin main

# 停止并删除旧的容器
docker stop mywebapp
docker rm mywebapp

# 构建并发布新的镜像
docker build -t mywebapp .
docker push mywebapp

# 运行新的容器
docker run -p 80:80 --name mywebapp -d mywebapp

上述脚本中,我们首先拉取最新的代码,并停止并删除旧的容器。然后,我们重新构建和发布新的镜像,并使用docker run

    Buat imej Docker

    Seterusnya, kita perlu mencipta imej Docker untuk menjalankan aplikasi dalam bekas. Imej Docker ialah templat baca sahaja yang mengandungi semua yang diperlukan untuk menjalankan aplikasi.

    Biasanya, kita boleh menggunakan Dockerfile untuk menentukan imej kita. Berikut ialah contoh mudah:

    rrreee

    Dalam contoh di atas, kami menggunakan versi Alpine Python 3.9 sebagai imej asas. Kemudian, kami menyalin fail requirements.txt ke direktori /app dalam bekas dan menggunakan pip untuk memasang kebergantungan yang diperlukan. Akhir sekali, kami menyalin keseluruhan aplikasi ke dalam bekas dan menentukan arahan apabila bekas bermula.

      🎜Bina dan terbitkan imej Docker🎜🎜🎜Selepas melengkapkan penulisan Dockerfile, kita boleh menggunakan perintah docker build untuk membina imej: 🎜rrreee🎜The arahan di atas akan membina nama Be the image of mywebapp dan menjalankan proses binaan mengikut definisi dalam Dockerfile. 🎜🎜Selepas binaan selesai, kita boleh menggunakan perintah docker push untuk menerbitkan imej ke gudang cermin: 🎜rrreee🎜Dalam langkah ini, kita boleh menggunakan gudang cermin awam seperti Docker Hub, atau kita boleh membina gudang persendirian kita sendiri. 🎜
        🎜Jalankan bekas🎜🎜🎜Selepas imej dibina dan diterbitkan, kita boleh menggunakan perintah docker run untuk menjalankan bekas pada hos setempat atau jauh. 🎜rrreee🎜Arahan di atas akan memulakan bekas pada hos tempatan dan memetakan port kontena 80 ke port hos 80. Dengan cara ini, kita boleh mengakses aplikasi dengan mengakses port 80 mesin hos. 🎜
          🎜Penghantaran Berterusan🎜🎜🎜Menggunakan Docker dan Linux, kami boleh mencapai penghantaran aplikasi yang berterusan. Berikut ialah skrip contoh mudah untuk mengautomasikan penggunaan aplikasi: 🎜rrreee🎜 Dalam skrip di atas, kami mula-mula menarik kod terkini dan menghentikan serta memadam bekas lama. Kemudian, kami membina semula dan menerbitkan imej baharu dan menggunakan perintah docker run untuk menjalankan bekas baharu. 🎜🎜Menggunakan skrip di atas, kami boleh mengautomasikan proses penghantaran berterusan permohonan. 🎜🎜Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan Docker dan Linux untuk mencapai penghantaran aplikasi yang berterusan. Dengan menggunakan platform kontena dan skrip penggunaan automatik, kami boleh membina, mengeluarkan dan menjalankan aplikasi dengan cepat dan boleh dipercayai. Dengan cara ini, kami dapat memenuhi keperluan pengguna dengan lebih baik sambil meningkatkan produktiviti pembangun. 🎜🎜Melalui latihan dan penyelidikan lanjut, kami boleh meneroka lebih banyak senario aplikasi Docker dan Linux dalam penghantaran berterusan, dan terus mengoptimumkan serta menambah baik proses penghantaran kami. Kami menggalakkan pembangun untuk bereksperimen secara aktif dan berkongsi pengalaman dan pengajaran mereka untuk mempromosikan pembangunan seluruh komuniti pembangunan perisian. 🎜

Atas ialah kandungan terperinci Docker dan Linux: Bagaimana untuk menggunakan bekas untuk penghantaran aplikasi yang berterusan?. 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