操作镜像
- 查看当前 docker 中下载的镜像
docker images
一、查看当前 docker 中下载的镜像,如下图,当前我的 Docker 容器中存在两个镜像 ,tomcat、mysql
二、启动镜像 (因启动命令参数过多,同时各种镜像启动时可以增加额外的参数,本次以启动 mysql5.6 为例)
docker run -p 本机映射端口:镜像映射端口 -d —name 启动镜像名称 -e 镜像启动参数 镜像名称:镜像版本号
参数释义:
- -p 本机端口和容器启动端口映射,端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
- -d 后台运行
- —name 容器名称
- -e 镜像启动参数
—rm:容器终止运行后,自动删除容器文件。
例:docker run -p 3306:3306 -d —name mysql01 -e MYSQLROOT_PASSWORD=admin mysql:5.6
参考官方文档: [https://hub.docker.com//mysql](https://hub.docker.com/_/mysql)
三、查看当前启动的镜像
docker ps
四、访问示例中的 mysql 数据库
五、停止镜像
docker stop 镜像实例 ID
例:docker stop fe754db626db
六、查看所有镜像(包括未启动的)
docker ps -a
七、当镜像实例已经存在时,重新启动镜像
docker start 镜像实例 ID
例:docker start fe754db626db
八、删除镜像实例
docker rm 镜像实例 ID
例:docker rm fe754db626db
命令
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 Hub 上的 nginx 镜像
docker search nginx
- 进入ngnix镜像
docker exec -it 726745d6be99 bash /usr/sbin/nginx
```
资源
docker run 命令详解
https://www.cnblogs.com/yfalcon/p/9044246.html
视频资源
https://www.imooc.com/video/15646/0
作者:焚_44b3
链接:https://www.jianshu.com/p/8c27ab4b96e3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。