1.获取镜像:
#docker pull [选项] [Docker Registry
地址[:端口号]/]仓库名[:标签]
Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]
。默认地址是 Docker Hub。
仓库名:如之前所说,这里的仓库名是两段式名称,即
<用户名>/<软件名> 。对于 Docker
Hub,如果不给出用户名,则默认为 library ,也就是官方镜像。

2.列出镜像:
#docker image ls -a
#docker image ls ubuntu
查看镜像、容器、数据卷所占用的空间:
# docker system df

3.运行容器的命令:
#docker run -it –rm ubuntu:16.04 bash
参数:
-it :这是两个参数,一个是 -i :交互式操作,一个是 -t
终端。我们这里打算进入
–rm
:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除。因此使用
–rm 可以避免浪费空间。
ubuntu:16.04 :这是指用 ubuntu:16.04 镜像为基础来启动容器。
bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是
bash 。

4.利用 commit 理解镜像构成
注意: docker commit
命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用
docker commit 定制镜像, 定制镜像应该使用 Dockerfile 来完成。
#docker run –name webserver -d -p 80:80 nginx
用 nginx 镜像启动一个容器,命名为 webserver ,并且映射了 80
端口,可以用浏览器去访问这个 nginx 服务器。

可以使用docker exec 命令进入容器,修改其内容。
#docker exec -it webserver bash
#echo ‘<h1>Hello, Docker!</h1>’ >
/usr/share/nginx/html/index.html
#exit

我们修改了容器的文件,也就是改动了容器的存储层。我们可以通过 docker diff
命令看到
具体的改动。
#docker diff webserver

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

docker commit [选项] <容器ID或容器名>
[<仓库名>[:<标签>]]
[root@docker ~]# docker commit –author “lin
<alin_0320@163.com>” –message “修改了默认网页” webserver
nginx:v2
sha256:3bf7fc736abdb18a98839689c31f6f29952be1bd9c2c6cb4a40fcab41cbae351

查看镜像内的历史记录:
#docker history nginx:v2

#docker run –name web2 -d -p 81:80 nginx:v2
命名为新的服务为 web2 ,并且映射到 81 端口

 

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注