Docker基础

安装

Ubuntu

环境监测

Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。

1
$ uname -r

安装

1
2
3
4
5
6
7
8
# 升级包管理器
$ sudo apt-get update
# 安装所有必须和可选的包
$ sudo apt-get upgrade
$ sudo apt install docker.io
$ systemctl start docker
$ systemctl enable docker
$ docker --version

CentOS

1
$

MacOS

1
$

查看Docker信息

查看版本

1
$ docker version

显示系统信息

1
$ docker info

镜像操作

检索镜像

1
$ docker search 镜像名

下载镜像

1
$ docker pull 镜像名

列出镜像列表

1
$ docker images

显示镜像历史

1
$ docker history 镜像名称

导出镜像到本地

1
$ docker save -o 要保存的文件名 要导出的镜像


1
$ docker -o mycentos-mongodb3.tar mycentos-mongodb2

从本地导入镜像

1
$ docker load --input 镜像文件

或者

1
$ docker load < 镜像文件

删除所有镜像

1
$ docker rmi $(docker images -q)

格式化输出列

1
$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Size}}\t{{.Tag}}"

显示库和版本号

1
$ docker images --format "table {{.Repository}}:{{.Tag}}"

容器操作

从主机拷贝文件到容器

1
$ docker cp  主机文件的绝对路径  容器id:容器中文件的绝对路径

从容器拷贝文件到主机

1
$ docker cp  容器id:容器中文件的绝对路径  主机文件的绝对

从镜像运行容器

1
$ docker run -i -t 镜像名称 /bin/bash     #/bin/

bash为交互模式运行,不加这个参数为守护模式运行

启动已经存在的容器

1
$ docker start 容器名称

停止运行中的容器

1
$ docker stop 容器名称

列出最近一次运行的容器

1
$ docker ps -l

列出所有运行中的容器

1
$ docker ps

列出所有容器

1
$ docker ps -a

删除容器

1
$ docker rm 容器名称

挂载本地磁盘

1
$ docker run -v 本地磁盘路径:容器中的文件路径

设定端口转发

1
$ docker run -p 转发后的端口:转发前的端口

对容器的修改保存为新镜像

1
$ docker commit 容器名称 新镜像的名称

查看容器日志

1
$ docker log 容器名称

连接到已经运行的容器

1
$ docker attach 容器名称

停止所有容器

1
$ docker stop $(docker ps -a -q)

删除所有容器

1
$ docker rm $(docker ps -a -q)

查看日志

1
$ docker logs 容器ID

仓库操作

登录Docker Hub

1
$ docker login

发布镜像

1
$ docker push 镜像名称

制作镜像

语法

1
$ docker build -t imagename Dockerfilepath

示例

打包镜像示例

1
$ docker build -t image1 .

将python打包成镜像

Dockerfile

1
2
3
4
5
6
7
8
9
FROM centos/python-36-centos7
MAINTAINER 王丽兵 iamwanglibing@qq.com
ADD ./scrapysolution /code
COPY requirements.txt requirements.txt
WORKDIR /code
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD ["python", "/code/proxy_pool.py"]
CMD ["python", "/code/main.py"]

打包镜像:

1
$ docker build -t scrapysolution-content-spider .

运行镜像:

1
$ docker run -d --name scrapysolution-content-spider scrapysolution-content-spider:latest

常见问题

image is referenced in multiple repositories

问题描述

删除镜像时报错:

1
2
3
$ docker rmi $(docker images -q)
Error response from daemon: conflict: unable to delete 7257caf71e74 (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 7257caf71e74 (must be forced) - image is referenced in multiple repositories

解决办法

1
2
$ docker rmi $(docker images --format "table {{.Repository}}:{{.Tag}}")
$ docker rmi $(docker images -aq)

参考

坚持原创技术分享,您的支持将鼓励我继续创作!