• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

VirtualBox下Docker安装和基本使用(一)

互联网 diligentman 2周前 (11-20) 12次浏览

VirtualBox下Docker安装和基本使用

  • 操作环境
  • VirtualBox下安装centos镜像
  • Docker的安装与镜像源优化
  • Docker的基本使用
    • 下载并启动第一个镜像
    • busybox镜像的下载与使用
    • docker配置apache服务

操作环境

(1)主机:window10家庭中文版
(2)虚拟机:Oracle VirtualBox、centos8镜像(最小化安装
(3)Docker 开源免费 CE(Community Edition)版

VirtualBox下安装centos镜像

(1)启动VirtualBox,新建一个虚拟机
VirtualBox下Docker安装和基本使用(一)

(2)设置虚拟机CPU核数占主机的一半,内存占主机的一半。(本机测试环境为8192MB内存,4核)
VirtualBox下Docker安装和基本使用(一)
(3)设置虚拟机硬盘40GB,接入默认NAT网络。
VirtualBox下Docker安装和基本使用(一)
(4)在光驱中添加实现安装好的centos8.2镜像
附centos下载地址:https://www.centos.org/download/
VirtualBox下Docker安装和基本使用(一)

(5)启动虚拟机,根据提示安装centos8.2操作系统,设置用户为 cloud,密码为 cloud,root用户密码为 cloud,网卡IP地址默认为10.0.2.15
VirtualBox下Docker安装和基本使用(一)
VirtualBox下Docker安装和基本使用(一)
(6)centos8.2安装成功后,重启虚拟机(注意要先从光驱中移除centos8.2镜像再重启,否则会一直处于安装)

Docker的安装与镜像源优化

docker安装

1.Docker官方提供了三种在Centos上安装的方式
(1)Install using the repository(使用存储库安装)
(2)Install from a package (使用rpm包安装)
(3)Install using the convenience script(使用便捷脚本安装)
为了简化安装和升级过程,对小白更加友好,这里我们选择第一种安装方式。
2.安装过程
(1)卸载旧版本及其依赖

$ yum remove docker docker-client docker-client-latest docker-common docker-latest 
     docker-latest-logrotate docker-logrotate docker-engine

(2)安装必须的软件包

$ yum install -y yum-utils device-mapper-persistent-data lvm2

(3)设置稳定的存储库

$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(4)启用nightly存储库并启用测试通道(可选操作)

$ yum-config-manager --enable docker-ce-nightly
$ yum-config-manager --enable docker-ce-test

(5)安装最新版本的Docker Engine和容器

$ yum install -y docker-ce docker-ce-cli containerd.io

(6)启动Docker引擎

$ systemctl start docker

镜像源优化-阿里源

Docker Hub在国外,下载镜像比较慢,aliyun等提供了免费的国内镜像服务
(1)进入cr.console.aliyun.com
(2)注册一个账号并登录
(3)点击左侧菜单“镜像加速器”,复制如下内容
VirtualBox下Docker安装和基本使用(一)

(4)修改daemon配置文件

$ cd /etc/docker/ //进入daemon.json文件目录
$ vi daemon.json
在daemon.json文件中添加镜像加速器中提供的地址
$ systemctl restart docker//重新启动docker

Docker的基本使用

下载并启动第一个镜像

通过访问 hub.docker.com可以查看镜像列表以及各镜像的使用手册
(1)最小的镜像:

$ docker pull hello-world
$ docker images
$ docker run hello-world

VirtualBox下Docker安装和基本使用(一)
(2)从docker hub 拉取一个感兴趣的软件

$ docker pull nginx //从docker hub pull nginx 
$ docker images //查看镜像列表
$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx //启动nginx,将容器命名为some-nginx,并绑定一个卷
$ docker ps -a //查看全部容器(包括未运行的)
$ docker ps //查看运行中的容器

busybox镜像的下载与使用

busybox是一个聚成了一百多个最常用linux命令和工具的软件工具箱,它在单一的可执行文件中提供了精简的Unix工具集。BusyBox可运行于多款POSIX环境的操作系统中,如 Linux(包括Android),hurd,freebsa等

busybox既包含了一些简单实用工具,如cat 和 echo ,也包含了一些更大,更复杂的工具,如 grep ,find ,mount 以及telnet.

$ docker pull busybox //从docker hub pull busybox
$ docker run -it busybox sh //以交互式方式启动busybox容器
ping -c sohu.com 10 //在容器内ping搜狐,测试网络连通性

docker配置apache服务

(1)从docker hub 下载httpd镜像

$ docker pull httpd //从docker hub pull httpd

(2)启动httpd容器 ,以后台方式运行,同时提供端口映射。

$ docker run -d -p 802080 httpd//以后台方式运行容器,将宿主机8020端口与docker 80端口建立映射。
$ docker ps -a

(3)curl验证docker内对外web服务是否正常

$ curl 127.0.0.18020
$ curl 10.0.2.158020

(4)设置virtual box网络实现本机浏览器外部访问docker内web服务
方法一:在虚拟机管理面板,找到设置,选择网络,网络类型选择网络地址转换NAT,点击高级,点击端口转发配置主机到虚拟机端口映射,将本机8020端口与虚拟机8020端口建立映射
VirtualBox下Docker安装和基本使用(一)
外部网络访问docker内web服务时,通过virtualbox端口映射将主机8020端口与宿主机8020建立映射,数据报从8020端口转发,因为创建httpd容器时建立宿主机到docker的端口映射,故docker-proxy 监听宿主机的 8020端口,当有数据报转发时,docker-proxy 转发给容器 ,httpd 容器响应请求并返回结果。
VirtualBox下Docker安装和基本使用(一)
方法二:修改virtualbox网络模式为桥接网络。桥接网络模式下VM通过宿主机网卡,建立网桥接入外部网络,VM 与 Host 可相互访问,VM 与外部网络可相互访问,VM 之间可相互访问,宿主机地址与主机在同一个网段。
(5)修改容器内部文件index.html内容。
1)进入容器内部,切换到htdocs文件目录下

$ docker exec -it eager_baibt bash //进入容器内部
$ cd htdocs//切换目录

2)通过vi编辑器修改index.html文件内容

$ apt-get update
$ apt-get install vim//由于容器内缺少vim,利用yum命令下载vim软件包
$ vi index.html

(6)容器持久化存储
1)在/home下创建目录;

$ cd /home
$ mkdir test
$ cd test
$ vi index.html //新建index.html文件,修改内容

2)运行httpd服务容器,并把web发布目录映射为该目录。

$ docker run -dit --name web -p 8020:80 -v /home/lly/:/usr/local/apache2/htdocs/ httpd

3)利用curl验证容器持久化存储建设成功。
(7)停止容器并彻底清除已停止的容器

docker stop xxx //停止某些容器
docker rm -v $(docker ps -aq -f status=exited)//清除全部容器


喜欢 (0)