docker基本操作命令,通过安装nginx来说明
# 从镜像仓库拉取镜像,:后面为版本号,不写默认最新
docker pull nginx:latest
# 查看本地镜像
docker images
# 查看元数据,通过这个就可以看到暴露的端口,后面run的时候就可以通过这个映射端口
docker inspect nginx(镜像名或者镜像id)
# 运行容器 -p将容器内的80端口映射为8080端口
docker run -itd --name=nginx -p 8080:80 nginx
# 查看容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器
此时通过localhost:8080 就可以访问了。
这个时候,如果我们要修改配置文件或者静态文件怎么办呢,进入容器修改后重启
# 进入容器系统,查看配置信息
docker exec -it nginx /bin/bash
此时如果需要修改这个目录下面的index.html文件,就需要打开文件修改,但是可能系统中没有vi/vim命令,需要自己安装,不在此讲述。这里面就考虑可以把文件复制到宿主机修改完成后,再复制进去。注意这需要在容器外执行下面的命令,另开一个窗口。
# 从docker 容器复制指定目录的文件(或目录)复制到宿主机当前所在目录(可以指定具体其他目录)
docker cp nginx:/usr/share/nginx/html/index.html ./
修改好之后再复制进容器中,命令如下:
docker cp ./index.html nginx:/usr/share/nginx/html/index.html
这样就修改完成了。
这种方式确实可以实现修改,但是这个操作过程是在是太复杂了,可以通过挂载卷的方式将容器内的目录挂载到宿主机,这样就可以直接在宿主机修改文件了,减少上面繁杂的过程。
刚刚上面我们通过命令docker exec 进入容器后,知道了nginx的文件位置在 /usr/share/nginx/html目录,这样我们就可以将这个目录挂载出来了。
首先我们删除刚刚运行的容器,重新运行一个新的可以挂载目录的容器。
# 删除容器,-f表示强制删除
docker rm -f nginx
# 运行可以挂载的容器,注意需要将index.html拷贝到宿主机 /d/docker-volume/nginx这个目录下
docker run -itd --name=nginx -p 8080:80 -v /d/docker-volume/nginx: /usr/share/nginx/html nginx
此时,就可以直接在宿主机编辑这个index.html了,同理,通过这个方法,也可以挂载conf.d目录。