docker入门
更多docker学习前往官方网:https://docs.docker.com/
1.安装docker
#删除已经安装docker yum remove docker docker-client docker-client-latest docker-common dockder-latest dockder-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine find / -name "docker*" rm -rf 删除干净再重装 #配置阿里云docker yum源 # 更新yum sudo yum update # 配置yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存 yum clean all # 配置yum源后生成缓存,将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度 yum makecache fast yum install -y yum-utils device-mapper-persistent-data lvm2 git #查看yum源上docker的版本 yum list docker-ce --showduplicates 或者 yum list docker-ce #安装docker yum install docker-ce -y #启动docker服务 systemctl start docker 或者 service docker start systemctl enable docker #查看已安装的docker版本 docker version 或者docker -v #查看docker信息,相当于检验是否安装成功 docker info
ps:dokcer daocloud仓库:https://www.daocloud.io。注册登录进入页面可完成镜像管理、集群管理等操作
2.docker常用方法
1.镜像 搜索镜像:docker search centos -f stars=100 或者docker search centos -s 100 拉取镜像:docker pull centos 查看本地镜像:docker image list 查看镜像详情:docker image inspect 镜像id 删除镜像:docker -rmi 镜像名称或者id 强制删除镜像:docker rmi 镜像名称或者id --force 只查看所有镜像的id:docker images -q 删除所有镜像:docker rmi $(docker images -q) 查看镜像的父镜像:docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=镜像id) 2.容器 启动容器:docker run -it --rm 镜像 /bin/bash 在容器退出时总是重启容器:docker run -it --restart=always 镜像 /bin/bash 进入容器:docker attach 容器id 查看运行状态中的容器:docker ps 查看所有容器:docker ps -a 只查看所有容器id:docker ps -a -q 列出最近一次启动的容器:docker ps -i 查看容器详情:docker inspect 容器id 查看容器详情的某个值:docker inspect 容器id|grep Gateway 重启容器:docker restart 容器id 3.查看镜像的父镜像 docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=镜像id)
3.创建自己的容器
将容器的文件系统打包成归档文件 :docker export 容器id -o 镜像.tar 或者 docker export 容器名称>镜像.tar 导入镜像归档文件到其他宿主机:docker import 镜像.tar 镜像名称:镜像tag dockerfile使用: docker build命令用于根据给定的dockerfile和上下文以构建docker镜像 1. mkdir /app cd /data/docker-ws mkdir python_app 2.vim /data/docker-ws/python_app/app.p3 from flask import Flask import socket import os app = Flask(_name_) @app.route('/') def hello(): html = "<h3>Hello {name}!</h3><b>Hostname:</b{hostname}<br/>" return html.format(name=os.getenv("NAME","world"),hostname=socket.gethostname()) if __name__ == "__main__": app.run(host='0.0.0.0',port=9090) 3.vim /data/docker-ws/python_app/requirements.txt写入以下依赖库名 Flask 4.vim /data/docker-ws/python_app/Dockerfile写入以下指令 # 基础镜像,自动下载 FROM python:2.7-slim MAINTAINER klx 1319328276@qq.com # run修改基础镜像的内容 WORKDIR /app ADD . /app RUN pip install --trusted-host pypi.python.org -r requirements.txt EXPOSE 9090 ENV NAME World CMD ["python","app.py"] 5.创建镜像:docker build -t klx/flask_python:v1 . 6.启动容器:docker run -p 9090:9090 klx/flask_python:v1 7.进入容器 docker exec -it 容器id /bin/bash
4. 其他命令
#停止全部容器 docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) #删除全部容器 docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2) #删除全部tag为none镜像 docker images|grep none|awk '{print $3}'|xargs docker rmi #停止全部已开启的容器 docker ps -a | grep 'Up' | awk '{print $1}'| xargs docker container stop #删除全部已停止的容器 docker ps -a | grep 'Exited' | awk '{print $1}'| xargs docker container rm