Docker的镜像是用于生成容器的模板,镜像分层的,镜像与容器的关系,就是面向对象编程中类与对象的关系,我们定好每一个类,然后使用类创建对象,对应到Docker的使用上,则是构建好每一个镜像,然后使用镜像创建我们需要的容器。容器相关操作:
容器包含三个状态:docker run -it --name xx xx /bin bash
2.以守护进程方式启动容器: docker run -d --name 容器名称 镜像
docker start container_id
# container_id表示容器的id
docker stop container_id
# 查看所有容器
docker container ls
# 查看所有运行的容器
docker ps
# container_id表示容器id,通过docker ps可以看到容器id
docker rm container_id
# 删除所有容器
docker rm $(docker ps -q)
# 删除所有退出的容器
docker container prune
# 进入容器,container_id表示容器的id,command表示Linux命令,如/bin/bash
docker exec -it container_id command
docker run --name containerName -p 80:80 -d nginx
命令解读:
这里的`-p`参数,是将容器端口映射到宿主机端口。
默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。
现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了
需求:进入Nginx容器,修改HTML文件内容,添加“Welcomde to Docker!”
提示:进入容器要用到docker exec命令。
步骤:
1)进入容器。进入我们刚刚创建的nginx容器的命令为:docker exec -it mn bash
命令解读:
容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:
nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。
查看DockerHub网站中的nginx页面,可以知道nginx的html目录位置在`/usr/share/nginx/html`
我们执行命令,进入该目录:
cd /usr/share/nginx/html
3)修改index.html的内容
容器内没有vi命令,无法直接修改,我们用下面的命令来修改:
sed -i -e 's#Welcome to nginx#Welcome to Docker!#g' -e 's#<head>#<meta charset="utf-8">#g' index.html
在浏览器访问自己的虚拟机地址,例如我的是:http://192.168.254.188,即可看到结果: