Rumah Tutorial sistem LINUX Mulakan dengan Docker dalam masa lima minit

Mulakan dengan Docker dalam masa lima minit

Jan 02, 2024 pm 02:29 PM
linux tutorial linux Topi Merah sistem linux arahan linux pensijilan linux linux topi merah video linux

Apakah itu Docker?

Docker ialah enjin kontena sumber terbuka, dan kontena sebenarnya adalah persekitaran bebas maya Oleh itu, pembangun boleh membungkus aplikasi ke dalam bekas docker sedemikian dan kemudian menerbitkannya ke mana-mana mesin yang boleh menjalankan bekas docker untuk mencapai Pakej dan menggunakan berbilang. tempat pada satu masa, menyelesaikan masalah penempatan yang disebabkan oleh masalah alam sekitar.

Konsep yang sepadan dengan bekas adalah imej Imej boleh dianggap sebagai imej sistem pemasangan harian kami, yang merupakan persekitaran berjalan. Sudah tentu, saya lebih suka membandingkan imej dengan kelas dalam pengaturcaraan berorientasikan objek kami, dan bekas ialah contoh kelas, jadi banyak bekas boleh dibuat berdasarkan satu imej. Setiap bekas adalah khusus. Kita boleh membuat perubahan pada bekas dan kemudian membungkus bekas itu ke dalam imej baharu, supaya bekas baharu boleh dibuat berdasarkan imej yang diubah suai pada masa hadapan. Bekas itu sendiri boleh difahami secara ringkas sebagai persekitaran berjalan bebas maya Apa yang perlu kami lakukan ialah membungkus aplikasi kami dalam persekitaran ini untuk penggunaan mudah semula.
Mulakan dengan Docker dalam masa lima minit

Pasang Docker

Gentoo

# emerge --ask docker
Salin selepas log masuk

CentOS

# yum install docker-ce
Salin selepas log masuk

Ubuntu

# apt-get install docker-ce
Salin selepas log masuk

Lengkungan

# pacman -S docker
Salin selepas log masuk
Mulakan daemon buruh pelabuhan
# systemctl start docker
Salin selepas log masuk
pengenalan arahan docker
# docker --help
管理命令:
  container   管理容器
  image       管理镜像
  network     管理网络
命令:
  attach      介入到一个正在运行的容器
  build       根据 Dockerfile 构建一个镜像
  commit      根据容器的更改创建一个新的镜像
  cp          在本地文件系统与容器中复制 文件/文件夹
  create      创建一个新容器
  exec        在容器中执行一条命令
  images      列出镜像
  kill        杀死一个或多个正在运行的容器    
  logs        取得容器的日志
  pause       暂停一个或多个容器的所有进程
  ps          列出所有容器
  pull        拉取一个镜像或仓库到 registry
  push        推送一个镜像或仓库到 registry
  rename      重命名一个容器
  restart     重新启动一个或多个容器
  rm          删除一个或多个容器
  rmi         删除一个或多个镜像
  run         在一个新的容器中执行一条命令
  search      在 Docker Hub 中搜索镜像
  start       启动一个或多个已经停止运行的容器
  stats       显示一个容器的实时资源占用
  stop        停止一个或多个正在运行的容器
  tag         为镜像创建一个新的标签
  top         显示一个容器内的所有进程
  unpause     恢复一个或多个容器内所有被暂停的进程
Salin selepas log masuk

Terdapat lebih banyak pilihan yang kaya dalam subperintah, yang boleh dilihat menggunakan DOcker COMMAND --help. Contohnya:

# larian buruh pelabuhan --tolong

Penggunaan docker dalam amalan

Seterusnya, saya akan menggunakan docker untuk menggunakan pelayan Nginx sebagai contoh. Untuk membuat bekas, kita mesti mempunyai imej yang digunakan untuk mencipta bekas itu. Cari imej berkaitan nginx dalam hab docker.

# docker search nginx
NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                                  Official build of Nginx.                        6959      [OK]
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1134                 [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   452                  [OK]
...
...
Salin selepas log masuk

Tarik gambar rasmi Gambar tidak rasmi di atas adalah gambar yang dibuat oleh pengguna mengikut keperluan sendiri untuk kemudahan semua.

# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
afeb2bfd31c0: Pull complete
7ff5d10493db: Downloading [===============>                                   ] 6.651 MB/21.87 MB
d2562f1ae1d0: Download complete
Salin selepas log masuk

By the way, imej docker disimpan dalam lapisan, jadi imej nginx di atas mempunyai 3 lapisan Selain itu, setiap kali imej baru dibuat berdasarkan bekas baru, satu lapisan akan ditambah pada imej.
Seterusnya, gunakan imej ini untuk memulakan bekas baharu secara langsung:

# docker run --name my-nginx -d -p 8080:80 nginx
Salin selepas log masuk

Pada masa ini, masukkan: http://localhost:8080/ dalam penyemak imbas untuk mengakses nginx. Penjelasan parameter:

  • --nama Beri nama bekas
  • Sintaks parameter
  • -p ialah -p port hos:port kontena; -p 8080:80 mengikat port 8080 pada hos ke port 80 pada bekas, jadi mengakses port 8080 pada hos sebenarnya mengakses port 80 bekas nginx
  • -d menjalankan bekas di latar belakang

Kemudian mari kita lihat contoh yang lebih kompleks:

# docker run --name my-nginx \ 
    -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro \
    -v /some/html:/usr/share/nginx/html:ro \
    -p 8080:80 \
    -d nginx
Salin selepas log masuk

Contoh ini mempunyai parameter tambahan -v Fungsi parameter ini adalah untuk melekapkan fail atau folder tempatan ke dalam bekas. Ro atau rw terakhir mengawal sama ada pelekap boleh ditulis.

  • -v sintaks parameter ialah -v host dir:container dir[:ro|rw]

Arahan di atas melekapkan fail konfigurasi nginx.conf dalam fail setempat ke bekas, dan juga melekapkan halaman statik untuk dipaparkan pada bekas. Nota: Selepas bekas melaksanakan arahan, apabila arahan tamat, bekas itu juga akan tamat.

Seterusnya mari kita lihat arahan docker yang lain.

Lihat semua bekas yang sedang berjalan:

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
1fe91b5a4cd4        nginx               "nginx -g 'daemon ..."   39 minutes ago      Up 39 minutes       0.0.0.0:8080->80/tcp   my-nginx
# docker ps -a ### 列出包括未运行的容器
Salin selepas log masuk

Lihat log bekas berjalan:

# docker logs my-nginx
172.17.0.1 - - [05/Oct/2017:07:31:11 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" "-"
2017/10/05 07:31:11 [error] 7#7: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "localhost:8080"
Salin selepas log masuk

Mulakan semula bekas:

# docker restart my-nginx
my-nginx
Salin selepas log masuk

Berhenti menjalankan bekas:

# docker stop my-nginx
my-nginx
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
Salin selepas log masuk

Mulakan bekas sedia ada:

# docker start my-nginx
my-nginx
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
1fe91b5a4cd4        nginx               "nginx -g 'daemon ..."   50 minutes ago      Up 3 seconds        0.0.0.0:8080->80/tcp   my-nginx
Salin selepas log masuk

Bunuh bekas yang sedang berjalan terus:

# docker kill my-nginx
Salin selepas log masuk

Namakan semula bekas:

# docker rename my-nginx new-nginx
Salin selepas log masuk

Padam bekas:

# docker rm new-nginx
Salin selepas log masuk

Lihat semua imej mesin ini:

# docker imags
Salin selepas log masuk

Buat imej menggunakan bekas sedia ada:

# docker commit -m "nothing changed" my-nginx my-nginx-image
sha256:f02483cdb842a0dc1730fe2c653603fa3271e71c31dbb442caccd7ad64860350
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
my-nginx-image      latest              f02483cdb842        6 seconds ago       108 MB
nginx               latest              da5939581ac8        3 weeks ago         108 MB
Salin selepas log masuk

Buat bekas menggunakan imej yang kami cipta sendiri:

# docker run --name test -d -p 8081:80 my-nginx-image
12ba86eabdef0121d875bdb547f1101d4eb54ff7cb36e20214fb1388659af83d
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
12ba86eabdef        my-nginx-image      "nginx -g 'daemon ..."   7 seconds ago       Up 5 seconds        0.0.0.0:8081->80/tcp   test
299f4ede9e79        nginx               "nginx -g 'daemon ..."   11 minutes ago      Up 11 minutes       0.0.0.0:8080->80/tcp   my-nginx
Salin selepas log masuk

Jika arahan permulaan bekas yang kita gunakan adalah shell, maka kita boleh menggunakan arahan attach untuk campur tangan dalam bekas, sama seperti kita menggunakan ssh untuk menyambung ke pelayan.

# docker attach some-container
Salin selepas log masuk

Mulakan shell interaktif secara langsung apabila mencipta bekas, dan padamkan bekas secara automatik selepas keluar:

# docker run -it --rm  centos
Salin selepas log masuk
Ringkasan

Artikel ini memperkenalkan penggunaan mudah docker, dan juga memberikan contoh praktikal untuk menunjukkan pelbagai operasi arahan docker. Sebagai artikel permulaan cepat, artikel ini agak mudah Banyak perkara konsep memerlukan membaca maklumat lain untuk memahami, tetapi selepas membaca artikel ini, anda harus mempunyai keupayaan asas untuk menggunakan docker. Di samping itu, artikel seterusnya harus menulis tentang Dockerfile dan docker-compose.

Atas ialah kandungan terperinci Mulakan dengan Docker dalam masa lima minit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Melihat Proses Docker Cara Melihat Proses Docker Apr 15, 2025 am 11:48 AM

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Konfigurasi komputer apa yang diperlukan untuk vscode Konfigurasi komputer apa yang diperlukan untuk vscode Apr 15, 2025 pm 09:48 PM

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:

VSCode tidak dapat memasang pelanjutan VSCode tidak dapat memasang pelanjutan Apr 15, 2025 pm 07:18 PM

Sebab -sebab pemasangan sambungan kod VS mungkin: ketidakstabilan rangkaian, kebenaran yang tidak mencukupi, isu keserasian sistem, versi kod VS terlalu lama, perisian antivirus atau gangguan firewall. Dengan menyemak sambungan rangkaian, keizinan, fail log, mengemas kini kod VS, melumpuhkan perisian keselamatan, dan memulakan semula kod VS atau komputer, anda boleh menyelesaikan masalah dan menyelesaikan masalah secara beransur -ansur.

Boleh vscode digunakan untuk mac Boleh vscode digunakan untuk mac Apr 15, 2025 pm 07:36 PM

VS Kod boleh didapati di Mac. Ia mempunyai sambungan yang kuat, integrasi git, terminal dan debugger, dan juga menawarkan banyak pilihan persediaan. Walau bagaimanapun, untuk projek yang sangat besar atau pembangunan yang sangat profesional, kod VS mungkin mempunyai prestasi atau batasan fungsi.

Apa itu vscode untuk apa vscode? Apa itu vscode untuk apa vscode? Apr 15, 2025 pm 06:45 PM

VS Kod adalah nama penuh Visual Studio Code, yang merupakan editor kod dan persekitaran pembangunan yang dibangunkan oleh Microsoft. Ia menyokong pelbagai bahasa pengaturcaraan dan menyediakan penonjolan sintaks, penyiapan automatik kod, coretan kod dan arahan pintar untuk meningkatkan kecekapan pembangunan. Melalui ekosistem lanjutan yang kaya, pengguna boleh menambah sambungan kepada keperluan dan bahasa tertentu, seperti debuggers, alat pemformatan kod, dan integrasi Git. VS Kod juga termasuk debugger intuitif yang membantu dengan cepat mencari dan menyelesaikan pepijat dalam kod anda.

Apr 16, 2025 pm 07:39 PM

Walaupun Notepad tidak dapat menjalankan kod Java secara langsung, ia dapat dicapai dengan menggunakan alat lain: menggunakan pengkompil baris arahan (Javac) untuk menghasilkan fail bytecode (fileName.class). Gunakan Java Interpreter (Java) untuk mentafsir bytecode, laksanakan kod, dan output hasilnya.

Apakah tujuan utama Linux? Apakah tujuan utama Linux? Apr 16, 2025 am 12:19 AM

Penggunaan utama Linux termasuk: 1. Sistem Operasi Pelayan, 2. Sistem Terbenam, 3. Linux cemerlang dalam bidang ini, menyediakan kestabilan, keselamatan dan alat pembangunan yang cekap.

Cara menggunakan vscode Cara menggunakan vscode Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) adalah editor cross-platform, sumber terbuka dan editor kod percuma yang dibangunkan oleh Microsoft. Ia terkenal dengan ringan, skalabilitas dan sokongan untuk pelbagai bahasa pengaturcaraan. Untuk memasang VSCode, sila lawati laman web rasmi untuk memuat turun dan jalankan pemasang. Apabila menggunakan VSCode, anda boleh membuat projek baru, edit kod, kod debug, menavigasi projek, mengembangkan VSCode, dan menguruskan tetapan. VSCode tersedia untuk Windows, MacOS, dan Linux, menyokong pelbagai bahasa pengaturcaraan dan menyediakan pelbagai sambungan melalui pasaran. Kelebihannya termasuk ringan, berskala, sokongan bahasa yang luas, ciri dan versi yang kaya

See all articles