目录

概念

安装Docker

环境说明

安装

确保 yum 包更新到最新。

执行 Docker 安装脚本

启动 Docker进程

验证 docker 是否安装成功并在容器中执行一个测试的镜像

Docker安装nginx

拉取官方镜像

本地查看nginx镜像

启动

部署

创建目录 nginx

部署命令

最后附带一些常备命令

Docker

docker container ls

docker kill _containerId_

docker stop _containerId_

docker ps

docker rm _containerID_


早早完成了任务,闲来无事,顺便把玩了一下docker。

docker nginx proxy 不生效 docker pull nginx超时_centos

概念

首先从概念开始讲起

此处参考于阮一峰docker    http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

  1. 软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?
    用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依赖,可能还要配置环境变量。
    如果某些老旧的模块与当前环境不兼容,那就麻烦了。开发者常常会说:"它在我的机器可以跑了"(It works on my machine),言下之意就是,其他机器很可能跑不了。
    环境配置如此麻烦,换一台机器,就要重来一次,旷日费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。

-----------------------------------------------------接下来是docker和nginx-----------------------------------------------------------

参考为菜鸟教程centos7安装docker以及docker安装nginx

https://www.runoob.com/docker/centos-docker-install.html

https://www.runoob.com/docker/docker-install-nginx.html

安装Docker

 

我的服务器操作系统是centos7,因此,按照执行命令下来就是这样:

环境说明

Docker 要求 CentOS 系统的内核版本高于 3.10,这里我是root用户登录到我的服务器上

[root@VM_0_11_centos ~]# uname -r
3.10.0-957.el7.x86_64
[root@VM_0_11_centos ~]#

安装

因服务器已安装完毕,因此附上安装代码如下

确保 yum 包更新到最新。

sudo yum update

执行 Docker 安装脚本

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

启动 Docker进程

sudo systemctl start docker

验证 docker 是否安装成功并在容器中执行一个测试的镜像

$ sudo docker run hello-world

Docker安装nginx

拉取官方镜像

$ docker pull nginx

本地查看nginx镜像

[root@VM_0_11_centos ~]# docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              5a3221f0137b        3 weeks ago         126MB
[root@VM_0_11_centos ~]#

启动

$ docker run --name test -p 8000:80 -d nginx

这里解释下test可以任取,为容器名称,8000:80是指端口映射,本地的 8000 端口映射到容器内部的 80 端口。

部署

创建目录 nginx

$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
$ docker cp 6dd4380ba708:/etc/nginx/nginx.conf ~/nginx/conf

这里再次解释下在主目录下创建nginx文件夹,里面有三个文件夹,如图

6dd4380ba708则是自己nginx镜像ID如上面本地查看Nginx镜像中的IMAGE ID

[root@VM_0_11_centos ~]# ls
nginx
[root@VM_0_11_centos ~]# cd nginx
[root@VM_0_11_centos nginx]# ls
conf  logs  www
[root@VM_0_11_centos nginx]#

部署命令

$ docker run -d -p 8080:80 --name myBlog -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

这一条蛮长的,--name后面的是自定义nginx名字,我的是MyBlog,也就是我的博客,将8080端口映射为容器内80端口。

执行完成也就启动成功。只要把自己网站的文件放置www文件夹下即可,如我的网站文件目录

[root@VM_0_11_centos ~]# cd nginx/www
[root@VM_0_11_centos www]# ls
css  fonts  img  index.html  js
[root@VM_0_11_centos www]#

最后访问我的服务器IP,8080端口,即可看见我的博客挂载成功拉http://129.28.156.114:8080/

最后附带一些常备命令

Docker

docker container ls

docker容器的ID,可以通过docker container ls命令显示,如图

[root@VM_0_11_centos ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
863c547f4448        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp   myBlog
dd9d1c40f541        nginx               "nginx -g 'daemon of…"   2 hours ago         Up About an hour    0.0.0.0:8000->80/tcp   runoob-nginx-test
[root@VM_0_11_centos ~]#

这里我起了两个nginx服务,一个是8080端口的博客,一个是8000端口的nginx欢迎页面,CONTAINER ID就在最前面一列。

docker kill _containerId_

这里_containerId_是docker容器的ID,如上,强制终止docker进程

docker stop _containerId_

1.Docker 通过containerd向容器主进程发送SIGTERM信号后等待一段时间后,如果从containerd收到了容器退出消息那么容器退出成功。
2、在上一步中,如果等待超时,那么Docker将使用Docker kill 方式试图终止容器

docker ps

列出所有容器

[root@VM_0_11_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
863c547f4448        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp   myBlog
dd9d1c40f541        nginx               "nginx -g 'daemon of…"   2 hours ago         Up About an hour    0.0.0.0:8000->80/tcp   runoob-nginx-test
[root@VM_0_11_centos ~]#

docker rm _containerID_

移除docker容器

好了,差不多结束了,吃晚饭去咯