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里再部署一下。