Docker
1.基本概念
1.1 Docker 包括三个基本概念
-
镜像( Image )
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资
源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境
变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
-
容器( Container )
镜像( Image )和容器( Container )的关系,就像是面向对象程序设计中的
类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被
创建、启动、停止、删除、暂停等。
-
仓库( Repository )
镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务
器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker
Registry 就是这样的服务。
2.新建docker
2.1 删除本地旧版本docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
2.2安装docker
2.2.1 更新本地镜像资源
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
2.2.2 安装docker
yum install -y docker-ce
3.启动docker
3.1 关闭防火墙
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
3.2 启动docker
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
输入命令查看docker版本
docker -v
3.3 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://90jpvmk1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.4 镜像操作
### 获取镜像
`docker pull name [:tag]` 不显式指定tag将下载latest
### 查看
`docker images` 列出所有的镜像
`docker inspect image id` 获取镜像详细信息 inspect命令返回的是一个JSON格式的消息
需要其中一项内容可以使用 -f参数来指定。在指定镜像id的时候,通常使用该id的前若干个字符组成的可区分字符串来替代完整的ID
### 搜寻镜像
使用`docker search` #命令可以搜索远端仓库中共享的镜像
### 删除
`docker rmi IMAGE #IMAGE可以为标签或者id`
### 创建镜像
# 1.基于已有镜像的容器创建
docker commit [OPTIONS] CONTAINER [REPOSITORY [:TAG]]
#主要选项包括
-a, --author="" ##作者信息
-m, --message="" ##提交信息
-p, --pause=true ##提交时暂停容器运行
# 2.基于本地模板导入
# 3.基于
### 存出和载入镜像
docker save
docker load
### 上传镜像
docker push
### 创建容器
docker create
### 新建并启动
docker run
### 守护形态运行
docker run -d
### 终止容器
docker stop
### 删除容器
docker rm