Docker安装-CSDN博客
看过程就一点点看,看结果直接看最后
安装启动Docker之后
docker run -d -p 81:81 --name nginx nginx
这样没有指定版本
- docker run:启动一个新的容器。
- -d:以分离模式运行容器(后台运行)。
- -p 81:81:将主机的 81 端口映射到容器的 81 端口。这意味着您可以通过访问主机的 81 端口来访问容器内的服务。
- --name nginx:为容器指定一个名称,这里是
nginx
。 - nginx:使用
nginx
镜像来创建容器。如果没有指定版本,将使用该镜像的最新版本。
安装指定版本的nginx
docker run -d -p 81:81 --name nginx nginx:1.21.0
下面以安装最新版 没有指定版本 会安装最新
列出所有容器,包括正在运行和停止的容器。
docker ps -a
docker images 查看已有的镜像
云服务器安全组开通81端口
访问:http:IP:81 发现无法访问
原因在于 nginx默认配置的是80端口 因此需要修改容器内部Nginx的配置文件
docker ps -a 或者docker ps
docker exec -it nginx /bin/bash 注意 -it 后面可以是 镜像id 也可以是容器名
cd /etc/nginx 可以看到nginx.conf配置文件在这里
发现要去编辑该文件 一些命令工具都没有装 很麻烦
apt-get update
apt-get install -y vim
vim /etc/nginx/nginx.conf 这里我配置错误 导致后面容器启动不起来 因为启动命令是81:81
exit 从容器内部退出来
停止容器nginx 并重新启动
用docker stop 容器名/容器id
重新启动
docker start 容器名或者id
由于上面配置文件错误 导致容器启动不起来
根本没有启动 所以进入不了
docker run -d -p 81:80 --name nginx nginx:1.21.0
重新下个镜像并启动
由于名字相同
docker rm 容器id 只写了前三位 只要可以和别的容器id正确区分就行
mkdir -p /usr/local/develop/docker/nginx
然后将一个全新的nginx.conf放进去
将配置文件挂在到本地的/usr/local/develop/docker/nginx/nginx.conf
docker run -d -p 81:81 --name nginx -v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf nginx
重新运行 这样就不需要总进容器
mkdir -p /usr/local/develop/docker/nginx/conf.d
mkdir -p /usr/local/develop/docker/nginx/html
html里放个index.html 自己随便建个
docker run -d -p 81:81 --name nginx -v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/develop/docker/nginx/conf.d:/etc/nginx/conf.d -v /usr/local/develop/docker/nginx/html:/usr/share/nginx/html nginx
把日志文件也挂载
docker run -d -p 81:81 --name nginx \
-v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/develop/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/develop/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/develop/docker/nginx/logs:/var/log/nginx \
nginx
docker run -d -p 80:80 -p 443:443 --name nginx \ -v /usr/local/develop/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/develop/docker/nginx/conf.d:/etc/nginx/conf.d \ -v /usr/local/develop/docker/nginx/html:/usr/share/nginx/html \ -v /usr/local/develop/docker/nginx/logs:/var/log/nginx \ -v /usr/local/develop/docker/nginx/ssl:/etc/nginx/ssl \ nginx
docker ps和docker ps -a docker images三个命令区别
docker ps 列出显示当前正在运行的容器
docker ps -a 列出所有容器,包括运行中、停止和退出的容器。
docker images 列出所有下载到本地主机的镜像。
docker rm 容器名/容器id 删除已经停止运行的容器
docker rm -f 容器名/容器id 即使在运行也删除