Docker基础操作

一、Docker概述

1、Docker是什么?

(1)是一种轻量级的“虚拟机”
(2)在Linux容器里运行应用的开源工具

2、Docker与虚拟机的区别

虚拟机容器
启动时间快速
容量
系统逻辑隔离依赖于内核(共享)
安全弱 ( cgroup资源分配)

3、Docker的使用场景

(1)打包应用程序简化部署
(2)可脱离底层硬件任意迁移
例:服务器从腾讯云迁移到阿里云

4、Docker的核心概念

(1)镜像
一个面向Docker容器引擎的只读模板
(2)容器
从镜像创建的运行实例
(3)仓库
集中保存镜像的地方

5、CentOS安装Docker的两种方式

(1)使用CURL获得Docker的安装脚本进行安装
(2)使用YUM仓库来安装Docker

二、Docker部署

–部署19版docker–

1、安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

#yum-utils 提供了yum-config-manager
#device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
#Device Mapper是 Linux2.6内核中支持逻辑卷管理的通用设备映射机制,
它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。

2、设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

3、安装Docker-CE

yum install -y docker-ce

systemctl stop firewalld.service
setenforce 0

vim /etc/selinux/config
SELINUX=disabled

systemctl start docker.service
systemctl enable docker.service
--镜像加速--
 mkdir -p /etc/docker
 tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://tzkfdus6.mirror.aliyuncs.com"]
}
EOF
 
 systemctl daemon-reload
 systemctl restart docker

进入阿里云-——>控制台-——>搜索容器镜像服务在这里插入图片描述
在这里插入图片描述

--网络优化--
vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p
service network restart
systemctl restart docker

3、获取镜像

docker version #docker版本信息
docker search nginx #查找指定镜像
docker pull nginx
下载后存放在/var/lib/docker

/var/lib/docker/image/overlay/repositories.json //下载文件信息

docker images //查看下戟镜像信息
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    f6d0b4767a6c   2 months ago   133M

在这里插入图片描述
在这里插入图片描述

--上传镜像--
docker tag nginx:latest abner/nginx:web #用户名/仓库名:镜像名  //改标签

docker login   //登陆

Username: docker
password:
Email: xxx@xxx.com
//上传
docker push abner/nginx:web

4、容器的操作

docker create -it nginx:latest /bin/bash   #容器创建

docker ps -a #查看容器

CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS    PORTS     NAMES
61e42646d12b   nginx:latest   "/docker-entrypoint.…"   About a minute ago   Created             thirsty_sinoussi

docker start 61e42646d12b   #启动容器
61e42646d12b


docker ps -a #查看状态为up
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
61e42646d12b   nginx:latest   "/docker-entrypoint.…"   7 minutes ago   Up 3 minutes   80/tcp    thirsty_sinoussi

在这里插入图片描述

docker pull paigeeworld/centos7
docker create -it paigeeworld/centos7 /bin/bash
docker ps -a
docker start 22682cdae9ff


docker run centos /usr/bin/bash -c ls #执行完成直接关闭状态是Exited

在这里插入图片描述
在这里插入图片描述

docker run -d paigeeworld/centos7 /bin/bash -c "while true;do echo hello;done"   #持续在后台执行

docker stop 09f866e1a922  #终止运行

在这里插入图片描述

#容器进入
docker ps -a(一定要是运行状态,不是就要启动)

docker exec -it 61e42646d12b /bin/bash  #进入容器

exit #退出容器

docker rm 61e42646d12b  #删除容器(只能删除不运行的)
docker ps-a | awk "fprintdocker rm "$1) | bash  #批量删除容器

在这里插入图片描述
在这里插入图片描述

5、私有仓库

docker pull registry #先获取registry镜像

在这里插入图片描述

vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.100.10:5000"],  #添加这行

"registry-mirrors": ["https://05vz3np5.mirror.aliyuncs.com]
}
systemctl restart docker.service

docker create -it registry /bin/bash
docker ps -a

docker start 048369b04a05  #启动容器

在这里插入图片描述

docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry  #宿主机的/data/registry自动创建挂载容器中的/tmp/registry

docker tag nginx:latest 192.168.100.10:5000/nginx  #更改标记为192.168.100.10:5000/nginx

docker push 192.168.100.10:5000/nginx #上传

curl -XGET http://192.168.100.10:5000/v2/_catalog #获取私有仓库列表

docker pull 192.168.100.10:5000/nginx #测试私有仓库下载

在这里插入图片描述

6、Docker数据卷

docker pull centos

docker run -v /var/www:/data1 --name web1 -it centos /bin/bash

cd /data1/
touch test1

返回宿主机进行查看
ls /var/www/

在这里插入图片描述

#数据卷容器
docker run --name web100 -v /data1 -v /data2 -it centos:7/bin/bash

docker run -it --volumes-from web100 --name db1 centos:7 /bin/bash #新容器挂载数据卷容器web100

在这里插入图片描述

7、端口映射

docker run -d -P nginx

docker run -d -p 49280:80 nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、容器互联

docker run -itd -P --name web11 centos:7 /bin/bash#创建并运行容器取名web1,端口号自动映射

docker run -itd -P --name web22 --link web11:web11 centos:7 /bin/bash #创建并运行容器取名web2,链接到web1和其通信进web22容器 ping web1

#--link name:alias                  --link容器名:别名

在这里插入图片描述

总结

1、镜像
上传(push) / 下载(pull) /打标签(tag) /删除(rmi) /导出(save) /导入(load)
2、容器
创建(create) /进入(exec) /运行(run) /删除(rm) /导出(export) /导入(import)
3、仓库
下载registry镜像——>运行容器暴露端口5000——>修改daemon.json文件——>重启docker打标签(IP:端口/名称)——>上传/下载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值