top of page

Docker学习1(pull, running & build)

1.Docker是什么?是一种Paas,通过DockerEngine运行一个个彼此独立的containers。

参照文档:https://docker-curriculum.com/


Docker主要有两部分,一部分是类似与git代码管理的images管理部分,另外一部分是images编译部分。


A.Docker images管理

docker run hello-world

运行一个名为hello-world的image


docker pull busybox

从服务器端获取一个名为busybox的image


docker images

展示所有的images


docker ps

列出所有正在运行的containers


docker ps -a

列出所有containers,包括以及退出(exited)状态


docker run -it busybox sh

使用交互模式运行busybox image


docker rm 305297d7a235 ff0a5c3750b9

删除指定的containers


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

删除所有退出(exited)状态的containers


docker container prune

同上


docker run --rm -it prakhar1989/static-site

运行prakhar1989/static-site image, --rm表示自动删除该container如果image运行结束


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

同上 -d表示detach终端 -P 表示会将container的端口随机暴露出来, --name是指定container name


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

同上 -p表示指定端口映射,这里8888表示本机端口,80表示container端口


docker port static-site

查找container static-site对应的端口,可以进行访问


B.怎么创建我们自己的image

教程中有一个git运行实例,从github下载下来:git clone https://github.com/prakhar1989/docker-curriculum.git

然后在目录下面(cd docker-curriculum/flask-app) 创建Dockerfile,在Dockerfile里面输入

FROM python:3.8
# set a directory for the app
WORKDIR /usr/src/app
# copy all the files to the container
COPY . .

把工作目录设置为/usr/src/app,在虚拟机里面,一会可以用交互模式运行image,登陆该目录,

然后把本地的数据全部拷贝进目标工作目录,PS 我使用交互模式进入以后,外面端口却不能访问docker run -p 8123:5000 -it yourusername/catnip sh

RUN pip install --no-cache-dir -r requirements.txt

安装相关依赖包

EXPOSE 5000

暴露5000端口,用来实现外部范围

CMD ["python", "./app.py"]

运行程序命令

docker build -t yourusername/catnip .

创建image

docker run -p 8888:5000 yourusername/catnip

运行image

 
 
 

Comments


bottom of page