一,购买云主机
测试用 买的阿里云ecs centos7.4 64位 1核1G 够用了,
创建root密码
二,ssh登录
下载ssh客户端,使用公网ip root登录,新增docker用户 并添加sudo权限 (docker文档命令用的sudo)
1,新增用户
2,添加sudo权限
vi /etc/sudoers
只读文件需修改权限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 ce
sudo systemctl enable docker
sudo systemctl start docker
四,通过官方镜像安装nginx
镜像官网 搜索nginx
sudo docker pull nginx
首先创建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
五,测试
打不开
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(挂载致使容器目录下文件被删除)
总结下:
1,普通用户操作docker
2,docker基本命令使用 ps,run,attach,stop,rm
3,交互模式下容器nginx自动停止了,需手动启动 或者使用非交互模式
4,云服务器切记端口需要对外开放,阿里云ecs安全组设置
5,进入容器如何安全退出 (退出后 容器不关闭),依次按 ctrl+p,ctrl+q
6,docker挂载 会覆盖容器内文件夹下文件(如有会被删除)