docker 是什么
定义
是一个轻量级的 虚拟机
在linux容器里运行应用的开源工具
特点
一次封装 到处运行
docker 与虚拟机的区
特点 docker 容器 虚拟机
启动速度 秒级 分钟级
计算能力损耗 几乎无 消耗50%左右
性能 接近原生 几十个
系统支持量 (单机) 上千个 几十个
隔离性 资源限制 安全隔离
docker 的使用场景
打包应用程序简化部署
可脱离底层硬件任意迁移
例 服务器从腾讯云迁移到阿里云
docker 三大核心
镜像
一个面向docker容器引擎的只读模板
容器
从镜像创建的运行实例
仓库
集中保存镜像的地方
centos安装docker 的两种方式
使用curl获得docker 的安装脚本进行安装
使用yum仓库来安装docker
安装docker 基于 7.3 部署的
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
bak CentOS-Base.repo CentOS-Media.repo
[root@localhost yum.repos.d]#
开始安装依赖包
[root@localhost yum.repos.d]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost yum.repos.d]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost yum.repos.d]# ls
bak CentOS-Base.repo CentOS-Media.repo docker-ce.repo
[root@localhost yum.repos.d]# yum clean all && yum makecache fast && yum list
#上要是能下载下来 docker源 下面着两个都没有必要执行了
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装开启自启
[root@localhost ~]# yum install -y docker-ce docker-ce-cli containerd.io
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
检查docker
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:46:54 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.12
API version: 1.40 (minimum version 1.12)
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:45:28 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
然后在配置加速器
cat <<EOF>> /etc/docker/daemon.json
{
"registry-mirrors": ["https://h9q2666q.mirror.aliyuncs.com"]
}
EOF
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
基本的命令
#下面就是 docker 一些的基本参数 简单的命令
搜素镜像
docker search (nginx 关键子)
docker search nginx
获取镜像
docker pull (仓库 : 标签) 如果没有标签 ( latest 最新的 )
docker pull nginx
查看仓库
docker images 可以查看 一个 也可以查看所有
docker images
查看镜像详细的东西
docker inspect (ID号)
docker inspect (id 号)
添加标签
docker tag nginx:
docker tag nginx nginx:web01
存出镜像 docker save -o 存在文件名 存出镜像
docker save 镜像id > name.tar
docker save -o name.tar 镜像id
导入 docker load < nginx
docker load -i nginx
创建容器
docker create -it nginx /bin/bash
root@docker01 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a73853f8a406 nginx:latest "/docker-entrypoint.…" 24 seconds ago Created ecstatic_pare
docker start (可以直接名字nginx 还可以 id)
-i 让容器的输入保持打开状态
-d 已守护进程运行
-t 开启一个虚拟终端
删除镜像
docker rmi nginx
或
docker rmi -f nginx 不建议在生产环境使用
删除容器
先停止服务 在删除
docker stop nginx
docker rm nginx
或
docker rm -f nginx 不建议在生产环境使用
导出容器
docker export (id 和 名字) > nginx_web01
docker export a73 > nginx_web01
导入容器
cat web01 | docker import web01
[root@docker02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
web01 latest 5390feda4503 About a minute ago 131MB
创建直接开启
创建容器
[root@localhost ~]# docker run -itd -p 8000:80 --name web01 nginx /bin/bash
9e35289f41cc2ef471bce4dec6d69e4e10cdb6bdf95d58e75dfa233226f5c941
查看容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e35289f41cc nginx "/docker-entrypoint.…" 12 seconds ago Up 7 seconds 0.0.0.0:8000->80/tcp web01
进入容器
[root@localhost ~]# docker exec -it 9e /bin/bash
root@9e35289f41cc:/#
上传镜像
[root@docker1 ~]# docker pull cirros
Using default tag: latest
latest: Pulling from library/cirros
3d6427f49fe3: Pull complete
1915bfe8159b: Pull complete
d0ec9ef25b96: Pull complete
Digest: sha256:8654d33ecbcdc8fd65c80325c3ec3b1bc938dfad9f20d1a2e3cf21e521ab70e6
Status: Downloaded newer image for cirros:latest
docker.io/library/cirros:latest
[root@docker1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 7 weeks ago 220MB
cirros latest bc94bceaae77 10 months ago 10.3MB
[root@docker1 ~]#
[root@docker1 ~]#
[root@docker1 ~]#
[root@docker1 ~]# docker tag cirros:latest bdqnkc005/cirros:01
[root@docker1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 7 weeks ago 220MB
bdqnkc005/cirros 01 bc94bceaae77 10 months ago 10.3MB
cirros latest bc94bceaae77 10 months ago 10.3MB
[root@docker1 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: bdqnkc005 # 用户
Password: #密码
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@docker1 ~]# docker push bdqnkc005/cirros:01
The push refers to repository [docker.io/bdqnkc005/cirros]
abbd6d6ac643: Mounted from library/cirros
75b99987219d: Mounted from library/cirros
0cc237193a30: Mounted from library/cirros
01: digest: sha256:96137d51e0e46006243fa2403723eb47f67818802d1175b5cde7eaa7f19446bd size: 943
[root@docker1 ~]#