安装Docker环境
- 本博客采用
系统完成Ubuntu(64-bit)
- 按照Docker官网提示,完成如下操作
- 输入
指令,确认无旧版本apt-get remove docker docker-engine docker.io containerd runc
docker
服务计算——docker容器化实践 - 输入
更新apt-get update
包apt
服务计算——docker容器化实践 - 输入
安装包以通过apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
访问HTTPS
仓库dockerHub
服务计算——docker容器化实践 - 输入
添加curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
的Docker
,并通过GPG key
指令确认是否添加成功,输出如下图二红框所示即为成功。apt-key fingerprint 0EBFCD88
服务计算——docker容器化实践 服务计算——docker容器化实践 - 输入
安装仓库信息为安装镜像作准备add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
服务计算——docker容器化实践 - 上述准备操作完成后,输入指令
安装最新版的apt-get install docker-ce docker-ce-cli containerd.io
容器化引擎,过程等待时间可能稍长Docker
服务计算——docker容器化实践 - 调用
指令,输出结果如下,表示docker version
安装成功Docker
服务计算——docker容器化实践 - 调用
上自带的DockerHub
镜像,通过指令hello-world
,输出结果如下图所示即可开始sudo docker run hello-world
的正式使用Docker
服务计算——docker容器化实践
Docker简单操作
- 输入指令
安装镜像并执行,此时会进入类docker run -it ubuntu bash
虚拟机的操作界面下,输入指令Ubuntu
能查看当前镜像路径下的文件,示意图如下:ls
服务计算——docker容器化实践 -
调用镜像时,当镜像位于本地库内则直接调用,否则会从Docker
上加载相应镜像到本地镜像库,通过DockerHub
可以查看本地镜像库内容docker images
服务计算——docker容器化实践 - 通过
指令显示容器属性,按照容器的ps
属性可以调用NAMES
启动容器,但此时需要通过docker restart DOCKER-NAME
指令进入容器attach
服务计算——docker容器化实践 - 可以调用
指令主动从pull
上拉取镜像,如:DockerHub
服务计算——docker容器化实践 - 通过建立
并设置相应的dockerfile
所需信息,即可调用docker
指令构建镜像build
FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]
- 以上述配置调用
创建命名为docker build . -t hello
的镜像hello
服务计算——docker容器化实践 - 通过
指令运行该镜像,输出结果如下:docker run -it --rm hello -H
服务计算——docker容器化实践 - 通过指令
获取docker pull mysql:5.7
镜像后,调用指令MySQL
启动镜像并通过sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_PASSWORD=root -d mysql:5.7
启动客户端,输入数据库指令即可进入docker run -it --net host mysql:5.7 "sh"
操作界面MySQL
服务计算——docker容器化实践 - 启动
镜像,安装必要的指令,调用ubuntu
查看当前ifconfig
内的docker
信息,即如下图所示:ip
服务计算——docker容器化实践 - 退出
镜像,在主机上再次输入ubuntu
查看网络信息,输入结果如下。通过对比发现,ifconfig
下的镜像与主机采用同一网关且对局域网ip地址进行了相应的修改,如主机的docker
而镜像上显示172.17.0.1
172.17.0.2
服务计算——docker容器化实践 - 通过
查看docker info
状态docker
服务计算——docker容器化实践 - 通过
查看对应镜像ID的输出日志,以docker logs CONTAINER_ID
为例,输出结果如下所示hello-world
服务计算——docker容器化实践
小结
使用
docker
之前,对相应的概念有了一定的了解,依我看来,
docker
相当于通过
linux
系统分配资源后,内部有一定的操作,而操作的具体内容便是镜像对应的功能,调用镜像即为在其内搭建了一定的环境以供用户使用,相当于没有完整操作系统的虚拟机,可以适配多种系统/模式下的需求,而且由于是沙箱模式,对主机不会产生过大的影响。后续的使用按照教程去逐步尝试,发现操作并不难,相对而言是用户友好的容器引擎,使用十分方便。