操作镜像

  • 查看当前 docker 中下载的镜像
    docker images

一、查看当前 docker 中下载的镜像,如下图,当前我的 Docker 容器中存在两个镜像 ,tomcat、mysql
img
二、启动镜像 (因启动命令参数过多,同时各种镜像启动时可以增加额外的参数,本次以启动 mysql5.6 为例)
docker run -p 本机映射端口:镜像映射端口 -d —name 启动镜像名称 -e 镜像启动参数 镜像名称:镜像版本号
参数释义:

  1. -p 本机端口和容器启动端口映射,端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
  1. -d 后台运行
  1. —name 容器名称
  1. -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)
img
三、查看当前启动的镜像
docker ps
img
四、访问示例中的 mysql 数据库
img
五、停止镜像
docker stop 镜像实例 ID
例:docker stop fe754db626db
img
六、查看所有镜像(包括未启动的)
docker ps -a
img
七、当镜像实例已经存在时,重新启动镜像
docker start 镜像实例 ID
例:docker start fe754db626db
img
八、删除镜像实例
docker rm 镜像实例 ID
例:docker rm fe754db626db
img

命令

hello docker

  1. 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 项目

  1. 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 页面

  1. <html>
  2. <head>
  3. <meta charset="utf-8" />
  4. <title>docker测试中文版</title>
  5. </head>
  6. <body>
  7. 欢迎学习docker,这里是php菜鸟学院教程
  8. </body>
  9. </html>

将该文件 cp 到 docker nginx 容器下。(假设该文件存储在 /home/docker/index.html)

  1. cd /home/docker
  2. docker cp index.html 4f74ad899aa7(容器id)://usr/share/nginx/html(容器下nginx 根目录)

访问页面,就会出现一个自定义的界面。

停止 docker 容器

  1. docker stop 4f74ad899aa7(容器id)

注意:容器 id 可以通过 docker ps 查询出,该命令表示停止一个指定容器 id 的 docker 容器。

让修改 docker 资源文件生效

停止 docker 后,再次重新启动 docker,访问之前的页面,发现恢复到原始默认页面。
原因:docker 在容器内做的改动都是暂时的,不会被永久保留的
再次将原来的 index.html 拷贝到这个容器下

  1. cd /home/docker
  2. docker cp index.html 4f74ad899aa7(容器id)://usr/share/nginx/html(容器下nginx 根目录)

注意:每次重启后容器 id 会发生变化,这里为了方便演示,依旧原来的。
然后提交保存,让 docker 资源文件永久生效:

  1. docker commit -m "first page!" 4f74ad899aa7 first-page
  • -m "message" 表示提交说明
  • 4f74ad899aa7 容器 id,每次重启后生成的 id 都不一样
  • first-page 镜像 id。注意:每次提交后将生成新的镜像。docker images可以查看所有镜像。

以上操作 停止容器后 再次重启容器会发现还会恢复默认。问题继续排查中…

相关命令

  • 查看容器目录结构 ``` docker exec -it 容器id /bin/bash
  1. - nginx 根目录

/usr/share/nginx/html

  1. - 查看历史容器

docker ps -a

  1. - 删除镜像

docker rmi 镜像id (多个可以用空格)

  1. - 删除容器

docker rm 容器id (多个可以用空格)

  1. - 获取镜像

docker pull

  1. - 创建镜像

docker build

  1. - 列出镜像

docker images

  1. - 运行容器

docker run

  1. - 容器列表

docker ps

  1. - 在主机和容器之间拷贝文件

docker cp

  1. - 保存改动为新的镜像

docker commit

  1. - 查找 Docker Hub 上的 nginx 镜像

docker search nginx

  1. - 进入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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。