1,安装
使用YUM安装 Docker CE
1. 设置存储库
a. 安装yum所需要的包:yum-utils,device-mapper-persistent-data,lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
复制
b. 使用以下命令设置稳定的存储库。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
复制
2. 安装 Docker CE
. 安装最新版本的Docker CE和containerd,或进入下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
复制
中间会提示接受GPG密钥,接受继续。
Docker已安装好了,但尚未启动。
c. 查看 Docker 版本号
$ docker version
复制
d. 启动 Docker
$ sudo systemctl docker start
centos7 : service docker start
----------------------------------------------------------------
3,docker stop 容器ID和 docker kill 容器id 的区别?
-》 stop更优雅。别的没区别。都是停掉容器服务。但是不从container中删除。
想删除掉还得用docker rm 容器id。
4,docker attach 容器ID 和 docker exec 容器id 有什么区别?
-》互补。docker attach不产生新的进程,而是直接进入容器的当前进程中。
所以exit或者ctrl+c,容器也就停止了。所以用ctrl+q+p,ctrl+p,ctrl+q来停。
docker exec产生了新的进程。
5,docker run与docker exec的区别?
-》互补。docker run 产生新的容器。而docker exec用于已经启动的容器。
6, docker的自定义网络为什么要定义?
-》 容器默认的网络是bridge网络。所以默认一台宿主机里的容器之间能访问。
但是宿主机和容器无法访问。所以,自定义网络的目的就是把宿主机和容器联通。
docker network ls
docker network inspect networkname/networkid
docker network create --driver dirvername my_network # my_networ 是网络名
docker run -it --network=my_network --rm image /bin/bash #把容器建到该网络中(和宿主机能互通)
7,自定义网络高级
创建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 创建两个容器指定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用来真正项目一次启动多个文件
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
写docker-compose.yml
docker-compose启动nginx与php
我们将使用docker-compose一次启动nginx与php两个容器。
1. 配置 dockers-compose.yml文件
创建docker-compose.yml配置文件:
version: '3'
services:
# nginx 服务
nginx:
# 推荐使用官方镜像
image: nginx:latest
# 映射端口,把容器端口映射到宿主机对外接口,格式:对外端口:容器端口
ports:
- "80:80"
- "443:443"
# 所依赖的服务,php会先启动
depends_on:
- php
# php 服务
php:
# 官方镜像
image: php:7-fpm
2.$ sudo service docker start
3.$ sudo docker-compose up -d #把两个容器一起执行起来
9,docker run -v 挂在硬盘的本质是什么?
-》本质是把宿主机的目录拷贝到容器里。如果容器里有对应的目录,那么不好意思,内容全被删除。然后变成本地目录的内容!!
注意吧。
10, Dockefile 和 docker-compose.yml 有什么不同?
-》本质上的不同。Dockerfile是 工程-》image 。 而 docker-compose.yml是image-》container(多个)。
11,docker run -v hostpath:containerpath . 能怎么用?
-》共享目录就是修改container的目录库。修改了之后有些container支持热部署,就直接反应到浏览器的应用上了。
有些可能需要冷部署。进入到container里再部署一下。