docker基本应用

docker

安装

#下载Centos 7 基础镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
#下载epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
#下载docker-ce源
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

#执行安装
yum remove -y docker-ce  docker-common  docker-selinux docker-engine container-selinux containerd.io
yum -y install docker-ce

#启动
systemctl start docker
systemctl enable docker

#配置镜像加速器
#docker中国官方加速器
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

#重新加载配置
systemctl reload docker

#确认安装
docker --version
docker info

docker基本使用

docker是一个软件打包技术,架构为C/S架构,包含客户端和服务端。

仓库:自定义镜像仓库

镜像:一次镜像处处运行

容器:运行镜像

[root@oldboy ~]# docker --version
Docker version 19.03.10, build 9424aeaee9

[root@oldboy ~]# docker info 
Client:
 Debug Mode: false

Server:
 Containers: 4
  Running: 1
  Paused: 0
  Stopped: 3
 Images: 4
 Server Version: 19.03.10
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 972.6MiB
 Name: oldboy
 ID: TZWK:GEIN:LZGW:CRL3:6K5K:MVQ5:QVGQ:EEX5:QYHP:NYNK:G4QD:AI5L
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://registry.docker-cn.com/
 Live Restore Enabled: false

使用

#容器的打包技术:在不安装nginx的情况下,启用nginx容器,就可以正常使用nginx服务。
docker run -d -p 80:80 nginx:lastest
docker images

docker images 列出本机上的镜像

repository --表示镜像的仓库源

tag --表示镜像的标签

image id --镜像的ID

create --镜像的创建时间

size --镜像的大小

参数

-a 列出本地的所有镜像及子镜像

-q 只显示镜像ID

–digests 显示镜像的摘要信息

–no-trunc 显示完整的镜像信息

docker search

从docker仓库中查找镜像,默认从/etc/docker/daemo.json文件中定义的路径中查找。

[root@oldboy ~]# cat /etc/docker/daemon.json 
{
   
   
"registry-mirrors":["https://registry.docker-cn.com"]
}
[root@oldboy ~]# docker search  nginx
NAME   DESCRIPTION               STARS      OFFICIAL            AUTOMATED
nginx  Official build of Nginx.    13914       ok                   

NAME :镜像名称

DESCRIPTION :描述

STARS :星级

OFFICIAL :是否官方

AUTOMATED :自定义

参数

–no-trunc 显示完整的镜像描述

-s 数字,列出收藏数字

–automated 只列出automated build类型构建的镜像

docker pull
docker search alpine                   #在线查找镜像
docker pull alpine                     #在线下载镜像
docker pull alpine:3.9
docker image ls  或者  docker images    #查看本地镜像列表

不标记镜像版本,默认下载最新的镜像(latest),镜像都是压缩文件,可以解压查看文件。可以将其导出,然后分析该镜像的文件内容和设置。

docker save
docker save  nginx:latest -o docker_nginx.tar.gz

-o 导出镜像的名称

导出的镜像也可以执行导入

docker load -i docker_nginx.tar.gz
镜像加速

为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

vim /etc/docker/daemon.json
{
   
   
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
 systemctl restart docker
docker tag
docker tag centos  centos:v01
docker run
docker run -d -it centos:6.9  [初始命令]
docker run  -it --name oldboy  --rm  alpine:latest /bin/bash
  • 运行一个在后台执行的容器,同时,还能用控制台管理:docker run -i -t -d ubuntu:latest
  • 运行一个带命令在后台不断执行的容器,不直接展示容器内部信息:docker run -d ubuntu:latest ping www.docker.com
  • 运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,还能用控制台管理,docker run -d --restart=always ubuntu:latest ping www.docker.com
  • 为容器指定一个名字,docker run -d --name=ubuntu_server ubuntu:latest
  • 容器暴露80端口,并指定宿主机80端口与其通信(: 之前是宿主机端口,之后是容器需暴露的端口),docker run -d --name=ubuntu_server -p 80:80 ubuntu:latest
  • 指定容器内目录与宿主机目录共享(: 之前是宿主机文件夹,之后是容器需共享的文件夹),docker run -d --name=ubuntu_server -v /etc/www:/var/www ubuntu:latest
run参数说明

run 有两个作用,创建并启动容器

-d 后台运行容器, 指定容器运行于前台还是后台,默认为false

-it 分配一个交互式的终端

–name 不指定名称的时候,容器启动是会产生随机的名称

–rm 表示运行退出之后执行容器删除操作

-v, --volume=[] , 给容器挂载存储卷,挂载到容器的某个目录

–volumes-from=[] ,给容器挂载其他容器上的存储卷

-e, --env 指定环境变量, 容器中可以使用该环境变量

–net=host 容器网络设置

  • ​ bridge:使用docker daemon指定的网络桥接
  • ​ host:使用容器主机网络
  • ​ container: NAME_or_ID 使用其他容器的网络
  • ​ none: 容器使用自己的网络(类似–net=bridge),但是不进行配置

–name=“” ,指定容器的名称

–privileged=false ,指定容器是否为特权容器,特权容器拥有所有的capabilities

–restart=always 重启策略

  • ​ no
  • ​ on-failure
  • ​ always

-u, --user 指定容器的用户

-a, --attach 登录容器(必须是以docker run -d启动的容器)

-w, --workdir 指定容器的工作目录

-c, --cpu-shares=0 ,设置容器CPU权重,在CPU共享场景使用

-m, --memory=“” ,指定容器使用内存的上限

-P, --publish-all=false ,容器自动暴露的端口(大写P)

-p, --publish=[] 指定容器暴露的端口

-h,–hostname=“” ,指定容器的主机名称

–cidfile=“” , 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法

–cpuset=“”,设置容器可以使用那些CPU,此参数可以用来让容器独占CPU

–device=[] ,添加主机设备给容器,相当于设备直通,

–dns=[] ,指定容器的DNS服务器

–dns-search=[] , 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件

–expose=[] , 指定容器暴露的端口,即修改镜像的暴露端口

–link=[] , 指定容器间的关联,使用其他容器的IP、env等信息

–rm=false, 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

–entrypoint=“” ,覆盖images的入口点。

不加参数就是在前台运行。CTRL+C可以结束容器。

宿主机

容器共用宿主机的内核。因此docker只支持linux内核的发行版本。

宿主机是centos6.9的系统,而运行的容器不一定都是,因为会出现有些容器运行的命令可能会没有。但是所有的linux操作系统的内核都是一样的,因此可以正常运行,按照linux的发行版本的固有命令来执行。

centos  yum
debian  apt-get
ubuntu  ap
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lebron-zhb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值