Docker学习1(pull, running & build)
- 一纾 罗
- Jul 18, 2022
- 2 min read
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