特点:
- docker可以实现虚拟化
- docker实现了一次部署,多处运行(实现服务的简单部署和快速部署)
- docker沙箱机制,实现了容器之间和容器与宿主机的隔离
一个完整的docker由以下四个部分组成:
- dockerClient客户端
- dockerDaemon守护进程
- Docker镜像
- DockerContainer容器
docker使用理由:
- 快速部署服务
- 实现隔离
- 让一个主机运行多个容器
- 提高开发效率
- 简化配置过程
- 实现软件的跨平台
docker安装:
- 配置源
vim /etc/yum.repos.d/bocker.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[epel]
name=epel
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/[extra]
name=extra
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/[alibase]
name=alibase
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/yum clean all
yum makecache -
下载repo文件
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 下载 docker-ce #开源免费版
yum install docker-ce -y - 配置镜像加速
注册阿里云
复制加速器地址
编写加速脚本如下: vim ali.sh
#!/bin/bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"] #写个人的加速器地址
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker
5. 运行脚本
sh ali.sh
docker两大类操作:
- 镜像操作
- 容器操作
docker镜像操作:
docker image --help #获取docker镜像有关操作帮助信息
帮助信息:
Usage: docker image COMMAND
Manage images
Commands:
build 基于dockerfile创建镜像
history 查看镜像构建历史
import 从压缩归档包中导入镜像export
inspect 显示镜像的详细信息
load 从一个压缩包中导入镜像save
ls 列出当前的镜像
prune 移除不常使用的镜像
pull 从镜像仓库中拉取镜像
push 从本地镜像仓库推送到远程仓库
rm 删除镜像
save 保存一个镜像至压缩包
tag 修改镜像名
实例:
- 拉取镜像
docker pull 镜像名
(docker pull 镜像名:tag#如果没有指定标签。默认是lastest,其后不再注释) - 查看镜像
docker image ls
(显示你docker下有的所有镜像) - 查看镜像的构建历史
docker history 镜像名 或 镜像的唯一标识id
docker history 镜像名 --no-trunc #不截断输出 - 从压缩包中导入镜像
docker load -i 压缩包名 (如:docker load -i httpd_img.tar.gz )
docker load < 压缩包名 (如:docker load < httpd_img.tar.gz ) - 把镜像制作成压缩包,方便存储和分享
docker save 镜像名 > 压缩包名(如:docker save busybox > busybox.tar.gz)
docker save 镜像名:标签信息 -o 压缩包名 (如; docker save busybox:latest -o busybox1.tar.gz ) - 删除镜像
docker image rm 镜像名 - (强制)删除不经常使用镜像
docker image prune -f - 查看镜像详细信息
docker inspect 镜像名 - 镜像改名
docker tag 镜像名:标签信息 新镜像名
容器操作:
docker container --help #获取docker容器操作有关帮助信息
帮助信息:
Usage: docker container COMMAND
Manage containers
Commands:
attach 进入容器,退出时容器会结束
commit 基于容器创建新镜像
cp 实现了容器和宿主机之间的文件共享
create 创建新的容器
diff 查看容器有哪些文件被改变了
exec 执行命令或者进入容器
export 导出容器的文件至压缩包import
inspect 查看容器详细信息
kill 强制杀掉容器 kill -9
logs 获取容器日志
ls 查看容器
ps 查看运行容器
pause 暂停容器
port 查看容器的端口映射信息
prune 移除不常使用的容器
rename 容器改名
restart 重启容器
rm 删除容器
run 运行命令。运行容器
start 启动容器
stats 容器运行状态
stop 优雅退出容器 kill -15
top 查看容器运行状态
unpause 解除暂停
update 更新容器的CPU,内存等信息
wait 等待容器退出,并打印退出状态吗
实例:
- 创建容器
docker run -d --name 容器名 --rm 镜像名 #注意:容器名字是不能重合的
(如: docker run -d --name ken --rm httpd ) - 查看运行的容器
docker ps #只能查看正在运行的容器
docker ps -a #查看正在运行以及退出状态的容器
docker ps -aq #只显示容器id - 停掉容器
docker stop 容器名或者容器ID #停掉单个容器
docker stop $(docker ps -aq) #批量停掉容器
docker rm -f $(docker ps -aq) #(强制)批量删除容器 - 查看容器详细信息
docker inspect 容器名或者容器ID - 容器运行状态
docker stats 容器名或者容器ID - 查看容器运行状态
docker top 容器名或者容器ID - 获取容器日志
docker logs 容器名或者容器ID
docker logs 容器名或者容器ID -f #持续刷新容器日志 - 暂停容器
docker pause 容器名或者容器ID - 解除暂停
docker unpause 容器名或者容器ID - 容器重命名
docker rename 旧容器名 新容器名 - 查看容器端口映射信息
docker port 容器名或者容器ID - 进入容器
docker exec -it 容器名或者容器ID /bin/sh - 在容器外使容器执行命令
docker exec 容器名或者容器ID 命令