docker笔记
docker学习笔记
安装docker
- 参照[官方文档](Install Docker Engine | Docker Documentation)部署
Docker 的用途
sudo groupadd docker
sudo usermod -aG docker $USER
验证docker安装成功 可以 docker version
docker imge 文件
image是二进制文件,docker把程序和依赖打包为镜像,之后生成Docker 容器,image 文件是容器的模板
docker env # 查看docker的环境配置
docker image ls # 列出所有 image 文件,可简写为 docker images
docker pull centos # 获取 centos 镜像
docker tag [id] docker/getting-started:dev # 添加tag
docker image rm [imageName]
而image 的pull 都是从doker hub上获取的,用户可自行上传,同github
docker container 文件
container 容器,镜像的第二阶段,大部分的操作是在容器上
docker container ls
docker container ls --all #包括终止运行的容器
docker container run -it centos:latest /bin/bash # 启动这个容器的基本命令
# -it 参数是让命令行运行,/bin/bash 是指定shell
# 可加 -d 参数 处于后台运行
# -p 可以指定映射端口
docker run -d -p 5000:5000 training/webapp python app.py #
docker atttach [id] # 进入 exit 后的容器
docker exec -it [id] /bin/bash # exit后不停止
docker container rm -f [containerID]
docker container kill [containerID]
docker ps -a # 查看运行容器
docker comtainer prune # 清理所有处于终止的容器
docker 默认对容器操作,container 可以省略
docker import and export
docker export [id] > ./docker/[name].tar
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
docker import http://example.com/exampleimage.tgz example/imagerepo
# 在URL导入镜像
Dockerfile
Dockerfile 类比 shell脚本,是制作docker容器的脚本,在项目的根目录touch .dockerignore ,里面可以添加你不想打包到 image 中的文件
.git
node_modules
npm-debug.log
touch Dockerfile
FROM node:8.4 #指定image
COPY . ./app #拷贝项目到app路径
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org #安装依赖
EXPOSE 3000 #容器端口
创建 image file
docker image build -t name . #-t指定name . 为Dockfile路径
image 建好后,可以生成容器,
docker container run -p 8000:3000 -it name /bin/bash
# -p 3000端口映射到本地8000端口
发布 image 文件
可以在 docker 官网 注册 一个账户发布你的 image
docker login
docker image tag [imagename] [username]/[repository]:[tag]
# 为本地 image 标注用户名和版本
docker image push [username]/[repository]:[tag] # 推送
归纳
一个容器名为lihong的centos image
# 启动,停止,重启容器:
docker start container_name/container_id
docker stop ~
docker restart ~
例子:用于flask开发的python 环境
docker run -it centos:latest /bin/bash
在容器中,安装python3,git,flash等依赖包,exit
docker commit -m "flask" -a 'lihong' container_id lihong/flask:v1
docker push lihong/flask:v1
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 游城二十代!
评论