docker 安裝使用中的心得memo

1,安裝

使用YUM安裝 Docker CE

1. 設(shè)置存儲(chǔ)庫(kù)

a. 安裝yum所需要的包:yum-utils,device-mapper-persistent-data,lvm2。

$ sudo yum install -y yum-utils \

? device-mapper-persistent-data \

? lvm2

復(fù)制

b. 使用以下命令設(shè)置穩(wěn)定的存儲(chǔ)庫(kù)。

$ sudo yum-config-manager \

? ? --add-repo \

? ? https://download.docker.com/linux/centos/docker-ce.repo

復(fù)制

2. 安裝 Docker CE

. 安裝最新版本的Docker CE和containerd,或進(jìn)入下一步安裝特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

復(fù)制

中間會(huì)提示接受GPG密鑰,接受繼續(xù)。

Docker已安裝好了,但尚未啟動(dòng)。

c. 查看 Docker 版本號(hào)

$ docker version

復(fù)制

d. 啟動(dòng) Docker

$ sudo systemctl docker start

centos7 : service docker start

----------------------------------------------------------------

3,docker stop 容器ID和 docker kill 容器id 的區(qū)別?

-》 stop更優(yōu)雅。別的沒(méi)區(qū)別。都是停掉容器服務(wù)。但是不從container中刪除。

? 想刪除掉還得用docker rm 容器id。

4,docker attach 容器ID 和 docker exec 容器id 有什么區(qū)別?

-》互補(bǔ)。docker attach不產(chǎn)生新的進(jìn)程,而是直接進(jìn)入容器的當(dāng)前進(jìn)程中。

? ? ? 所以exit或者ctrl+c,容器也就停止了。所以用ctrl+q+p,ctrl+p,ctrl+q來(lái)停。

? ? docker exec產(chǎn)生了新的進(jìn)程。

5,docker run與docker exec的區(qū)別?

-》互補(bǔ)。docker run 產(chǎn)生新的容器。而docker exec用于已經(jīng)啟動(dòng)的容器。

6, docker的自定義網(wǎng)絡(luò)為什么要定義?

-》 容器默認(rèn)的網(wǎng)絡(luò)是bridge網(wǎng)絡(luò)。所以默認(rèn)一臺(tái)宿主機(jī)里的容器之間能訪問(wèn)。

? 但是宿主機(jī)和容器無(wú)法訪問(wèn)。所以,自定義網(wǎng)絡(luò)的目的就是把宿主機(jī)和容器聯(lián)通。

? docker network ls

? docker network inspect networkname/networkid

? docker network create --driver dirvername my_network # my_networ 是網(wǎng)絡(luò)名

? docker run -it --network=my_network --rm image /bin/bash #把容器建到該網(wǎng)絡(luò)中(和宿主機(jī)能互通)

7,自定義網(wǎng)絡(luò)高級(jí)

? 創(chuàng)建network?

? # docker network create -d bridge --ip-range=192.168.1.0/24 --gateway=192.168.1.1 --subnet=192.168.1.0/24 bridge2

? # docker network ls? ? 創(chuàng)建兩個(gè)容器指定ip并指定network?

? # docker run -it --network=bridge2 --ip=192.168.1.3 busybox

? # docker run -it --network=bridge2 --ip=192.168.1.4 busybox

8,dockers-compose.yml用來(lái)真正項(xiàng)目一次啟動(dòng)多個(gè)文件

? 8.1 安裝

? sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

? sudo chmod +x /usr/local/bin/docker-compose

? sudo docker-compose --version

? 8.2

? ? 寫(xiě)docker-compose.yml

? ? docker-compose啟動(dòng)nginx與php

? ? 我們將使用docker-compose一次啟動(dòng)nginx與php兩個(gè)容器。

? ? 1. 配置 dockers-compose.yml文件

? ? 創(chuàng)建docker-compose.yml配置文件:

version: '3'

? ? ? ? services:

? ? ? ? # nginx 服務(wù)

? ? ? ? nginx:

? ? ? ? ? # 推薦使用官方鏡像

? ? ? ? ? image: nginx:latest

? ? ? ? ? # 映射端口,把容器端口映射到宿主機(jī)對(duì)外接口,格式:對(duì)外端口:容器端口

? ? ? ? ? ports:

? ? ? ? ? - "80:80"

? ? ? ? ? - "443:443"

? ? ? ? ? # 所依賴的服務(wù),php會(huì)先啟動(dòng)

? ? ? ? ? depends_on:

? ? ? ? ? - php

? ? ? ? # php 服務(wù)

? ? ? ? php:

? ? ? ? ? # 官方鏡像

? ? ? ? ? image: php:7-fpm

? ? ? 2.$ sudo service docker start

? ? ? 3.$ sudo docker-compose up -d? #把兩個(gè)容器一起執(zhí)行起來(lái)

9,docker run -v 掛在硬盤(pán)的本質(zhì)是什么?

-》本質(zhì)是把宿主機(jī)的目錄拷貝到容器里。如果容器里有對(duì)應(yīng)的目錄,那么不好意思,內(nèi)容全被刪除。然后變成本地目錄的內(nèi)容?。?/p>

? 注意吧。

10, Dockefile 和 docker-compose.yml 有什么不同?

-》本質(zhì)上的不同。Dockerfile是 工程-》image 。 而 docker-compose.yml是image-》container(多個(gè))。

11,docker run -v hostpath:containerpath . 能怎么用?

-》共享目錄就是修改container的目錄庫(kù)。修改了之后有些container支持熱部署,就直接反應(yīng)到瀏覽器的應(yīng)用上了。

有些可能需要冷部署。進(jìn)入到container里再部署一下。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容