Docker镜像-拉取并且运行

1.docker search : 从Docker Hub查找镜像

docker search [OPTIONS] 镜像名

  OPTIONS说明:

  • --automated :只列出 automated build类型的镜像;

  • --no-trunc :显示完整的镜像描述;

  • -s :列出收藏数不小于指定值的镜像。

可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建 (AUTOMATED)。

2.拉取镜像

docker pull 镜像:版本号


如果不指定版本号,默认拉下来是最新的

 

3.运行

 

镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础

现在让我们以定制一个 Web 服务器为例子,来讲解镜像是如何构建的。 

 

$ docker run --name webserver -d -p 80:80 nginx

 

这条命令会用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口(左边的也可以改成其他端口为对外暴露的,右边的是docker中的),这样我们可以用浏览器去访问这个 nginx 服务器。 输入localhost

 

现在,假设我们非常不喜欢这个欢迎页面,我们希望改成欢迎 Docker 的文字,我们可以使用 docker exec 命令进入容器,修改其内容。

$ docker exec -it webserver bash
root@3729b97e8226:/# echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
root@3729b97e8226:/# exit
exit

我们以交互式终端方式进入 webserver 容器,并执行了 bash 命令,也就是获得一个可操作的 Shell。

然后,我们用 <h1>Hello, Docker!</h1> 覆盖了 /usr/share/nginx/html/index.html 的内容。

现在我们再刷新浏览器的话,会发现内容被改变了。

现在我们定制好了变化,我们希望能将其保存下来形成镜像。

要知道,当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被记录于容器存储层里。而 Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化。

$ docker commit \
    --author "Tao Wang <twang2218@gmail.com>" \
    --message "修改了默认网页" \
    webserver \
    nginx:v2

其中 --author 是指定修改的作者,而 --message 则是记录本次修改的内容。这点和 git 版本控制相似,不过这里这些信息可以省略留空。

新的镜像定制好后,我们可以来运行这个镜像。

 docker commit 命令,手动操作给旧的镜像添加了新的一层,形成新的镜像

 

 

4.运行的参数

-d :代表后台运行容器,返回容器ID
--name: 自定义容器的名称,不加这命令docker会随便给一个名给你,所以建议打上这命令
-p :代表映射的端口 本地端口:镜像的默认端口(注意,每个软件默认端口是不同的)
-e: 配置mysql的root密码

-i: 以交互模式运行容器,通常与 -t 同时使用;

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-P: 随机端口映射,容器内部端口随机映射到主机的高端口

--volume , -v: 绑定一个卷

 docker run -p 12345:3306 --name mysqlyf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

 

 

使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

runoob@runoob:~$ docker run -it centos:latest /bin/bash
root@b8573233d675:/#
posted @ 2019-07-23 13:23  YF-海纳百川  阅读(7832)  评论(0编辑  收藏  举报