镜像创建容器
容器存储应用
仓库存储镜像
懵逼了吧
hello docker
docker run ubuntu echo hello docker
运行这个命令的过程中会判断容器 是否存在,如果存在,则输出hello docker
如果不存在,则创建容器ubuntu 。
命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Usage: Run a command in a new container
中文意思为:通过run命令创建一个新的容器(container)
部署一个简单的nginx项目
docker run -p 8989:80 -d nginx
同样,如果没有nginx容器,如果没有则创建。
-
-p 8989:80
指的是将容器的80端口映射服务器的8989端口,访问服务器的8989端口就可以访问到你部署的项目啦。(注意:nginx默认项目默认端口是80); -
-d
指定容器运行于前台还是后台,默认为false。默认指的是以守护进程的方式后台运行,即不用将运行状态输出在命令行。 -
nginx
指的是 nginx容器。
执行完上面的命令后,通过ip地址访问8989页面 就会显示一个默认的 welcome to nginx 的页面。下面使用自定义页面来替换这个默认的页面。
写一个简单的html页面
<html>
<head>
<meta charset="utf-8" />
<title>docker测试中文版</title>
</head>
<body>
欢迎学习docker,这里是php菜鸟学院教程
</body>
</html>
将该文件cp到docker nginx容器下。(假设该文件存储在 /home/docker/index.html)
cd /home/docker
docker cp index.html 4f74ad899aa7(容器id)://usr/share/nginx/html(容器下nginx 根目录)
访问页面,就会出现一个自定义的界面。
停止docker 容器
docker stop 4f74ad899aa7(容器id)
注意:容器id可以通过 docker ps 查询出
,该命令表示停止一个指定容器id的docker容器。
让修改docker资源文件生效
停止docker后,再次重新启动docker,访问之前的页面,发现恢复到原始默认页面。
原因:docker在容器内做的改动都是暂时的,不会被永久保留的
再次将原来的index.html 拷贝到这个容器下
cd /home/docker
docker cp index.html 4f74ad899aa7(容器id)://usr/share/nginx/html(容器下nginx 根目录)
注意:每次重启后容器id会发生变化,这里为了方便演示,依旧原来的。
然后提交保存,让docker资源文件永久生效:
docker commit -m "first page!" 4f74ad899aa7 first-page
-
-m "message"
表示提交说明 -
4f74ad899aa7
容器id,每次重启后生成的id都不一样 -
first-page
镜像id。注意:每次提交后将生成新的镜像。docker images
可以查看所有镜像。
以上操作 停止容器后 再次重启容器会发现还会恢复默认。问题继续排查中...
相关命令
- 查看容器目录结构
docker exec -it 容器id /bin/bash
- nginx根目录
/usr/share/nginx/html
- 查看历史容器
docker ps -a
- 删除镜像
docker rmi 镜像id (多个可以用空格)
- 删除容器
docker rm 容器id (多个可以用空格)
- 获取镜像
docker pull
- 创建镜像
docker build
- 列出镜像
docker images
- 运行容器
docker run
- 容器列表
docker ps
- 在主机和容器之间拷贝文件
docker cp
- 保存改动为新的镜像
docker commit
资源
docker run命令详解
https://www.cnblogs.com/yfalcon/p/9044246.html
网友评论