在CentOS上使用Docker
设置仓库
- 在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
- 安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
- 设置完之后,根据需求指定稳定的仓库地址(建议使用国内源)
# 官方源地址 $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 国内源地址 # 阿里云 $ sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 清华大学源 $ sudo yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装
# 按安装最新版docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动docker
# 启动 Docker (启动守护进程)
$ sudo systemctl start docker
查看容器
$ docker ps
# or 查看所有
$ docker ps -a
启动一个容器
$ docker start <CONTAINER ID>
停止一个容器
$ docker stop <CONTAINER ID>
重启一个容器
$ docker restart <CONTAINER ID>
进入容器
# 退出时容器停止
$ docker attach <CONTAINER ID>
# 退出时容器不停止(推荐)
$ docker exec <CONTAINER ID>
退出容器
$ exit
卸载 docker
- 删除安装包
$ yum remove docker-ce
- 删除镜像、容器、配置文件等内容
$ rm -rf /var/lib/docker
使用docker安装nginx
获取nginx镜像列表
$ docker search nginx
拉取nginx镜像到本地,使用第一个默认的’nginx’
$ docker pull nginx
查看拉取到本地的nginx镜像
$ docker images nginx
创建并启动nginx容器
- -d 指定容器以守护进程方式在后台运行
- –name 指定容器名称,此处我指定的是docker_nginx
- -p 指定主机与容器内部的端口号映射关系,格式 -p
[宿主机端口号]:[容器内部端口]
,此处使用主机80端口,映射容器80端口- 1276 是nginx的镜像IMAGE ID前4位
$ docker run -d --name docker_nginx -p 80:80 1276
查看到正在运行的容器
$ docker ps
修改nginx的配置文件
- 1、每次都进入到nginx容器内部修改
- 执行
docker exec -it xxxx /bin/bash
进入到nginx容器内部- exec 命令代表附着到运行着的容器内部
- -it 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
- xxxx 是我们要进入的容器Id的前4位
- /bin/bash 指定了执行命令的shell
- 进入到nginx容器内部后,我们可以cd /etc/nginx,可以看到相关的nginx配置文件都在/etc/nginx目录下
- 而nginx容器内的默认首页html文件目录为/usr/share/nginx/html
- 日志文件位于/var/log/nginx
- nginx容器内默认没有vim编辑器
$ apt-get update $ apt-get install vim
- 容器内编辑nginx.conf配置文件
- 执行exit命令我们可以从容器内部退出
- 执行
- 2、将nginx容器内部配置文件挂载到主机
- 有这个需求说明频繁改动,可直接安装到服务器