一,购买云主机

测试用 买的阿里云ecs  centos7.4 64位 1核1G 够用了,

创建root密码

二,ssh登录

docker部署nginx-从0开始

下载ssh客户端,使用公网ip root登录,新增docker用户 并添加sudo权限 (docker文档命令用的sudo)

1,新增用户

docker部署nginx-从0开始

2,添加sudo权限

vi /etc/sudoers 

docker部署nginx-从0开始

只读文件需修改权限chmod u+w /etc/sudoers 
          //进行修改,修改完成之后: 
         

​
vi /etc/sudoers 

三,安装docker

docker用户登录安装依赖包命令

sudo yum install -y yum-utils \

device-mapper-persistent-data \

lvm2

添加软件源命令

sudo yum-config-manager \

--add-repo \

https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

更新软件源缓存,并安装docker-ce

sudo yum makecache fast

sudo yum install docker-ce

docker部署nginx-从0开始

启动docker ce

sudo systemctl enable docker

sudo systemctl start docker

四,通过官方镜像安装nginx

镜像官网 搜索nginx

sudo docker pull nginx

docker部署nginx-从0开始

 

首先创建www目录

sudo mkdir -p /var/www/html

 

创建容器

sudo docker run -itd -p 8080:80 --name my-nginx -v /var/www/html:/usr/share/nginx/html:ro nginx /bin/bash

docker部署nginx-从0开始

五,测试

打不开

1,需要ecs开放8080端口 对应docker run 映射的端口

2,容器内没有启动nginx,手动进入后启动

查看官网dockerfile 是有启动命令的。CMD ["nginx", "-g", "daemon off;"]

If you add a custom CMD in the Dockerfile, be sure to include -g daemon off; in the CMD in order for nginx to stay in the foreground, so that Docker can track the process properly (otherwise your container will stop immediately after starting)!

如果在dockerfile中添加自定义cmd,请确保在cmd中包含-g daemon off;以便nginx保持在前台,以便docker能够正确跟踪进程(否则启动后容器将立即停止)!

如下去掉了交互模式,nginx正常启动

sudo docker run -d -p 8080:80 --name my-nginx -v /var/www/html:/usr/share/nginx/html:ro nginx

3,nginx在宿主机 /var/www/html 下创建index.html(挂载致使容器目录下文件被删除)

docker部署nginx-从0开始

 

docker部署nginx-从0开始

 

 

总结下:

1,普通用户操作docker

2,docker基本命令使用  ps,run,attach,stop,rm

3,交互模式下容器nginx自动停止了,需手动启动 或者使用非交互模式

4,云服务器切记端口需要对外开放,阿里云ecs安全组设置

5,进入容器如何安全退出 (退出后 容器不关闭),依次按 ctrl+p,ctrl+q

6,docker挂载 会覆盖容器内文件夹下文件(如有会被删除)

 

相关文章: