玩转 Docker 容器技术:1-6章实验报告

玩转 Docker 容器技术:1-6章 实验报告

安装Docker
配置 Docker 的 apt 源
安装包,允许 apt 命令 HTTPS 访问 Docker 源。

$ sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

添加 Docker 官方的 GPG

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

在这里插入图片描述
将 Docker 的源添加到 /etc/apt/sources.list

$ sudo add-apt-repository \  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) \  stable"

玩转 Docker 容器技术:1-6章实验报告_第1张图片

安装docker

$ sudo apt-get update   
$ sudo apt-get install docker-ce

运行第一个容器
运行容器

$ sudo docker run -d -p 80:80 httpd

玩转 Docker 容器技术:1-6章实验报告_第2张图片

玩转 Docker 容器技术:1-6章实验报告_第3张图片

查看下载的httpd镜像

$ sudo docker images

玩转 Docker 容器技术:1-6章实验报告_第4张图片

查看正在运行的容器

$ sudo docker ps 

在这里插入图片描述
镜像
hello-world镜像

下载hello-world镜像

$ sudo docker pull hello-world

玩转 Docker 容器技术:1-6章实验报告_第5张图片
运行hello-world镜像

$ sudo docker run hello-world

玩转 Docker 容器技术:1-6章实验报告_第6张图片
通过docker commit 命令构建镜像
下载CentOS的镜像

$ sudo docker pull centos

玩转 Docker 容器技术:1-6章实验报告_第7张图片
运行容器

$ sudo docker run -it centos

安装vi

确认vi没有安装
在这里插入图片描述
安装vim

# yum install vim

玩转 Docker 容器技术:1-6章实验报告_第8张图片
保存为新镜像

在新窗口中查看当前运行的容器

$ sudo docker ps

在这里插入图片描述
将容器保存为镜像(centos-with-vi)

$ sudo docker commit cool_bhaskara centos-with-vi

在这里插入图片描述查看新镜像属性

$ sudo docker images

玩转 Docker 容器技术:1-6章实验报告_第9张图片从新镜像启动容器,验证 vi 已经可以使用

$ sudo docker run -it centos-with-vi

玩转 Docker 容器技术:1-6章实验报告_第10张图片

通过 Dockerfile 构建镜像
用 Dockerfile 创建上节的 centos-with-vi

$ touch Dockerfile

Dockerfile的内容为:
FROM centos
RUN yum install vim -y

运行docker build命令

$ sudo docker build -t centos-with-vi-dockerfile .

玩转 Docker 容器技术:1-6章实验报告_第11张图片
查看新镜像属性

$ sudo docker images

玩转 Docker 容器技术:1-6章实验报告_第12张图片

查看新镜像的构建历史

$ sudo docker history centos-with-vi-dockerfile

玩转 Docker 容器技术:1-6章实验报告_第13张图片

搭建本地 Registry
启动registry容器

$ sudo docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2

玩转 Docker 容器技术:1-6章实验报告_第14张图片
查看正在运行的容器

$ sudo docker ps

玩转 Docker 容器技术:1-6章实验报告_第15张图片
查看仓库内容
打开浏览器,访问http://127.0.0.1:5000/v2/_catalog,可以查看到repositories: [] ,表示现在仓库中没有镜像。
玩转 Docker 容器技术:1-6章实验报告_第16张图片
重命名镜像,使之与 registry 匹配

$ sudo docker tag httpd 127.0.0.1:5000/cccxxmo/httpd:v1

玩转 Docker 容器技术:1-6章实验报告_第17张图片
玩转 Docker 容器技术:1-6章实验报告_第18张图片

上传镜像

$ sudo docker push 127.0.0.1:5000/cccxxmo/httpd

玩转 Docker 容器技术:1-6章实验报告_第19张图片
删除镜像,重新从本地下载

$ sudo docker rmi 127.0.0.1:5000/cccxxmo/httpd:v1
$ sudo docker pull 127.0.0.1:5000/cccxxmo/httpd:v1

玩转 Docker 容器技术:1-6章实验报告_第20张图片
查看仓库内容
打开浏览器,再次访问http://127.0.0.1:5000/v2/_catalog,可以看到上传的镜像。
玩转 Docker 容器技术:1-6章实验报告_第21张图片
网络
创建自定义网络
创建bridge网络

创建时可以通过指定–subnet和–gateway参数指定IP网段,否则会使用Docker 自动分配的 IP 网段。

$ sudo docker network create --driver bridge my_net

在这里插入图片描述
查看当前 host 的网络结构变化

$ brctl show

玩转 Docker 容器技术:1-6章实验报告_第22张图片
查看my_net的配置信息

$ sudo docker network inspect my_net

玩转 Docker 容器技术:1-6章实验报告_第23张图片
之后若需要使用新创建的网络,在启动容器时通过–network指定该网络即可。

存储
需创建$HOME/htdocs/index.html

bind mount
将$HOME/htdocsmount到httpd容器

$ sudo docker run -d -p 80:80 -v $HOME/htdocs:/usr/local/apache2/htdocs httpd

验证修改是否生效

$ echo "update index page!" > $HOME/htdocs/index.html
$ curl 127.0.0.1:80

在这里插入图片描述
volume container
创建一个volume container

$ sudo docker create --name vc_data -v $HOME/htdocs:/usr/local/apache2/htdocs -v $HOME/vc_test busybox

查看volume和bind

$ sudo docker inspect vc_data

玩转 Docker 容器技术:1-6章实验报告_第24张图片
使用volume container

$ sudo docker run -d -p 80 --volumes-from vc_data httpd

在这里插入图片描述
查看volume和bind是否一致

$ sudo docker inspect a29ad5280aa3

玩转 Docker 容器技术:1-6章实验报告_第25张图片
更新数据

$ echo "This content is from a volume container!" > $HOME/htdocs/index.html
$ curl 127.0.0.1:32768

玩转 Docker 容器技术:1-6章实验报告_第26张图片
data-packed volume container
用Dockfile构建镜像
Dockfile内容如下:
玩转 Docker 容器技术:1-6章实验报告_第27张图片

htdocs/index.html内容如下:
在这里插入图片描述
build 新镜像 datapacked

$ sudo docker build -t datapacked .

玩转 Docker 容器技术:1-6章实验报告_第28张图片
启动 httpd 容器并使用 data-packed volume container

$ sudo docker run -d -p 80:80 --volumes-from vc_data httpd
$ curl 127.0.0.1:80

在这里插入图片描述

你可能感兴趣的:(玩转 Docker 容器技术:1-6章实验报告)