docker 基礎教程

2021-08-20 07:25:34 字數 2854 閱讀 2001

docker優點:docker容器,一次構建,到處執行。構建之後,在任何支援docker的地方都能把它run起來。

虛擬機器:作業系統完全隔離。虛擬機器之下還有虛擬機器管理程式。

docker:沒有虛擬機器作業系統這層。主要是基於linux核心對容器的實現。

1、yum install docker-io後docker安裝到**了:

/usr/bin/docker

/usr/bin/docker-containerd

/usr/bin/docker-containerd-ctr

/usr/bin/docker-containerd-shim

/usr/bin/docker-runc

2、docker pull 下來的映象檔案存放的位置:/var/lib/docker

3、容器位置:/var/lib/docker/containers/

4、docker 進入容器

使用nsenter工具:他是乙個可以訪問另外乙個程序名字空間的乙個命令,訪問另外乙個容器的namespace.

1)、啟動容器:

[root@tcy1 tcy]# docker start ef3e81c343c1

2)、獲取容器pid:

$ docker inspect -f } 容器名或者容器id

3)、進入該容器

nsenter --target 上面查到的程序id  --mount --uts --ipc --net --pid

[root@tcy1 tcy]# docker ps -a //列舉所有容器

container id image command created status ports names

497d2ac4d4c3 elasticsearch "/docker-entrypoint. 2 days ago exited (0) about an hour ago 0.0.0.0:9200->9200/tcp, 9300/tcp trusting_pare

ef3e81c343c1 nginx "nginx -g 'daemon of 12 days ago exited (0) 12 days ago 0.0.0.0:80->80/tcp gloomy_babbage

a3fca27221d7 alpine "sh" 12 days ago exited (0) 12 days ago cranky_brattain

[root@tcy1 tcy]# docker inspect --format "}" gloomy_babbage

0[root@tcy1 tcy]# docker start ef3e81c343c1

ef3e81c343c1

[root@tcy1 tcy]# docker inspect --format "}" gloomy_babbage

4308

[root@tcy1 tcy]# nsenter --target 4308 --mount --uts --ipc --net --pid

mesg: ttyname failed: no such file or directory

root@ef3e81c343c1:/#

寫個指令碼,快速進入:

[root@tcy1 tcy]# cat in.sh

#!/bin/bash

cname=$1

cpid=$(docker inspect --format "}" $cname)

nsenter --target "$cpid" --mount --uts --ipc --net --pid

進入:

[root@tcy1 tcy]# ./in.sh gloomy_babbage
5、退出容器:

exit(不會讓容器關閉)

6、docker create + docker start  =  docker run

docker run:建立+啟動容器,例如下面:以nginx為映象,建立啟動乙個新的容器

[root@tcy1 tcy]# docker run -d -p 80:80 nginx

-d:不退出,在後台一直執行。

-p 80:80 埠重定向,把容器中的80埠對映到物理機器上的80埠。

7、docker pull:pull的時候是一層一層layer,pull的。

8、docker容器 只執行指定的乙個應用程式,當應用程式退出,docker容器也就退出了。

如果想在後台執行使用-d,例如:  docker run -d --name container1 nginx

容器關閉後再想啟動,先檢視容器名字:

docker ps -a | grep nginx

再 docker start 容器名,啟動容器。

Docker基礎教程

什麼是docker docker 是世界領先的軟體容器平台。開發人員利用 docker 可以消除協作編碼時 在我的機器上可正常工作 的問題。運維人員利用 docker 可以在隔離容器中並行執行和管理應用,獲得更好的計算密度。企業利用 docker 可以構建敏捷的軟體交付管道,以更快的速度 更高的安全...

Docker基礎教程 容器

容器是docker的另乙個核心概念。一般來說,映象的乙個執行例項就是容器,容器提供了乙個可寫的檔案層。docker的容器非常輕量級,建立和刪除都很容易。新建容器使用docker create命令 plain view plain copy docker create it ubuntu latest...

Docker基礎教程 網路基礎配置

啟動容器時,如果不知道對應引數,在容器外部是無法通過網路訪問容器內部的。可以通過 p或 p引數指定埠對映。使用 p時,docker會隨機對映乙個49000 49900的埠到容器內部開放的埠。p會對映到指定的埠,支援的格式 主機埠 容器埠 主機埠 容器埠 格式將本地埠對映到容器埠的命令如下 plain...