Docker

一、docker简介

    简单理解,docker就像是一个集装箱,将凌乱的的货物标准化托管,集装箱和集装箱之间互不影响。也就是说我们可以将不同应用程序打包到一个docker容器中。然后这个容器就很容易运送到其他机器上运行,而且很容易装载、复制、移除。

二、为什么使用docker

    首先,docker容器秒级启动,比传统虚拟机方式快很多

    其次,docker对系统资源利用率很高,一台主机上可以同时运行数千个docker容器。也能更轻松的迁移可扩展。

三、docker三个基本概念

镜像(image)

    镜像是一个特殊的文件系统。

    操作系统分为内核和用户空间。对linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而docker镜像,就相当于一个root文件系统。它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时的库、环境变量和配置文件等),这个打包好的运行环境就是镜像。

    docker是分层存储的架构,构建镜像时会一层一层构建,前一层是后一层的基础。每一层构建完就不会在发生改变,后一层上有任何改变朱会发生在自己这一层。比如,删除前一层文件,实际并不是真的删除前一层文件,而是仅在当前层标记为该文件已删除

容器(Container)

    容器是镜像运行的实体

    容器的实质是进程,但与直接在宿主机的进程不同,容器进程运行于属于直接的独立命名空间,容器也是分层存储

    容器存储的生命周期和容器一样,容器消亡时,容器存储层也随之消亡。可以使用数据卷,数据卷的生命周期独立于容器,容器消亡,数据卷不会消亡。

仓库(repository)

    集中存放镜像文件的地方

    镜像构建完成后,很容易在当前宿主机上运行,但是如果在其他服务器上使用这个镜像,我们就需要一个集中存储,分发镜像的服务,docker registry 就是这样的服务

    一个docker registry中可以包含多个仓库,每个仓库可以包含多个标签,每个标签对呀一个镜像。

四、安装(centos8)

#安装依赖
yum install yum-utils device-mapper-persistent-data lvm2 -y
#增加docker源
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
 sed -i 's@download.docker.com@mirrors.tuna.tsinghua.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo
 sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo
 sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/docker-ce.repo

centos8默认使用podman代替docker,所以需要containerd.io

yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum install -y --allowerasing docker-ce

efc3f2cf15e1444ba8cde9f181c481ed.png

 在阿里云上获取镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2htouzcd.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1dc3f85fd1214c55ab878c25316d0c50.png

五、docker基本命令

1 镜像操作

搜索官方仓库镜像

docker search ...

f21ff970ddae46c88f0fad2c68cde0cd.png

 拉取镜像

docker pull ...

d6e9a3f391904b7aa39a5e3daeec633e.png

 给镜像打标记 

docker tag nginx:1.14-alpine nginx:v1

查看镜像

docker image ls
docker image

1190c057779941c68ac03fa3449825ce.png

 导出镜像

docker image save ... -o或者> 路径

a52fd849f59c4f2f90966fab30518695.png

 删除镜像

docker image rm ...

f6bf020ac2584187870dc43757fa8857.png

 导入镜像

docker image load -i ...

217f5353830f4cadbd5e4aacb0cca047.png

查看镜像详细信息 

docker image inspect ...

2 容器操作

启动容器

docker run [options] 

options常用命令选项
-t 打开一个终端
-i 交互式访问
--name 容器名字
--network 指定网络
--rm 容器一停止,自动删除
-d 后台运行
-p 端口映射;大写P随机映射,小写p指定映射

b161e9bcc92c46c78803633d7fb6ed4a.png

 查看容器状态

1.docker ps
-a  查看所有
-qa 获取所有容器的id
2. docker container ls

启动,停止,删除,杀死容器

docker start ...
docker stop ...
docker rm ... 删除停止的容器
docker rm -f ...删除运行的容器

docker kill ...

查看容器详细信息

docker inspect ...

对运行的容器执行指定命令exec

docker exec [options] ...

options选项
-d 后台运行
-e 设置环境变量
-i 交互式
-t 打开一个终端
-u 用户名或uid

f0019fe953e34aeb890a735dffb63cd5.png

 docker和宿主机之间互相拷贝

docker cp web1:/usr/share/nginx/html/index.html .   将web1容器中的index.html拷贝到当前
docker cp test.html web1:/usr/share/nginx           将宿主机中的test.html拷贝到web1指定路径中

导入导出容器

docker export -o test.tar web1 
将web1容器导出test.tar

180730deaaf6445080b101f291759b9d.png

 

docker import test.tar -- nginx:web2
                          镜像   标签

c5fcedba64a84c8f9aa482f8b64fff2b.png

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值