Home > 云计算 > Docker配置与基本操作

Docker配置与基本操作
云计算 Docker 虚拟机

关于Docker


Docker是一个开源项目,它提供了一个在容器中部署软件应用环境的解决方案,它是一种操作系统层面的虚拟化抽象层.
Docker Hub是一个镜像的管理平台,可以存放和下载成型的镜像。https://hub.docker.com/

Docker的框架是这样:

docker框架

安装Docker


介绍一种在LINUX下安装docker的流程
》转换为根目录用户(或者在命令前添加sudo)
sudo sh -c su
》设置仓库

‣ $ apt-get update
‣ $ apt-get install ca-certificates curl gnupg lsb-release
‣ $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
‣ $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
‣ $ apt-get update

》安装docker engine

‣ $ apt-get update
‣ $ apt-get install docker-ce docker-ce-cli containerd.io

》验证是否成功(第一次可能要下载所需工具包)

docker run hello-world

若成功,可以看到“hello from docker!”字样。

常用Docker命令


》pull 用于从远程拉取docker images,例如

docker pull busybox

》查看docker images清单

docker images

docker框架
》运行一个容器

docker run busybox echo "hello from busybox"

在使用run命令时,docker客户端实际上在执行:1.找到镜像(busybox)2.加载容器3.在容器中运行指令
》查看在运行的容器

docker ps

或查看更多信息

docker ps -a

》移除容器,可使用名称,id等

docker rm 305297d7a235 ff0a5c3750b9

docker框架
清理存在的容器

docker rm $(docker ps -a -q -f status=exited)

-q只返回id,-f添加一个过滤器
停止一个容器

docker stop name

》移除未使用的镜像

docker rmi hello-world

示例运行一个静态网站


拉取一个网站镜像,并在后台运行这个容器

docker run -d -P --name static-site prakhar1989/static-site

其中-d是在后台运行,我们的终端继续运行;-p是publish所有端口到随机端口;–name我的起的网站名字
运行docker port 【container】可以查看端口映射
docker框架
也可以定制一个端口映射关系(将容器外的8888端口映射到容器内的80端口)

docker run -p 8888:80 prakhar1989/static-site

创建一个我们自己的镜像


部署一个Flask app

‣ $ git clone https://github.com/prakhar1989/docker-curriculum
‣ $ cd docker-curriculum/flask-app
‣ $ cat Dockerfile

Dockerfile是一个文本文档,它包含了当docker客户端想要创建一个镜像时所需要的一系列命令
docker框架

使用docker build来依据docker file创建一个docker镜像

docker build -t <用户名>/catnip .

其中<用户名>指的你在docker hub上的用户名。创建完成后可以docker images看一下,然后运行容器用户名>

docker run -p 8888:5000 <用户名>/catnip

此时用浏览器登录可以看到静态网站了。
docker框架

将自己的镜像上传至docker hub
》登陆,输入账户信息。

docker login

》推送镜像。

docker push <用户名>/catnip

》现在任何安装了docker的人可以运行你的镜像了,只需要一行命令

docker run -p 8888:5000 <用户名>/catnip

部分内容节选自docker网站