docker入门

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 install -y yum-utils device-mapper-persistent-data lvm2 git
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#查看yum源上docker的版本
yum list docker-ce --showduplicates 或者 yum list docker-ce

#安装docker
yum install docker-ce-18.03.0.ce -y 或者 yum install docker-ce -y

#启动docker服务
systemctl enable docker
systemctl start docekr 或者 service docker start

#查看已安装的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

  

原文地址:https://www.cnblogs.com/konglingxi/p/12378295.html