Docker入门

一、Docker概述

1、容器技术的发展

(1)物理计算机向虚拟机演化

一台主机可以运行多个相互隔离的操作系统及应用

(2)轻量级虚拟化技术出现

一台主机可以运行多个相互隔离应用,减少了多个操作系统对资源的占用

(3)容器编排技术出现

为了更方便的创建管理大量容器,容器编排工具得到了发展和应用

2、Docker是什么

Docker是一种轻量级“虚拟机”的管理工具,这里的“虚拟机”称为容器,容器与传统的虚拟机不同,每个容器没有独立的操作系统及操作系统对资源的占用

容器相比传统虚拟机,占用资源更少,创建及管理更方便、更灵活

3、容器技术的核心概念

镜像:是一个只读的静态模板,类似于虚拟机的快照,是容器运行的基础

容器:容器是从镜像创建的运行实例,它会在镜像之上创建一个可写层

仓库:是集中存放镜像的地方

二、Docker安装

实验环境

全新Centos

1、Docker版本

Docker-ce Docker社区版,主要用于个人开发者测试使用,免费版本

Docker-ee Docker企业版,主要用于为企业开发及应用部署使用,收费版本

2、Docker安装方法

YUM源可以使用官方YUM源、清华大学开源镜像站配置YUM源、阿里云开源镜像站提供的YUM源;

建议选择使用阿里云开源镜像站提供的YUM源,原因速度快

(1)百度搜“阿里云开源镜像站”--“阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区”--“容器”--“docker-ce”--“CentOS 7(使用 yum 进行安装)”--复制安装命令中的URL路径

“https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo”

(2)在docker host上使用使用 wget下载到/etc/yum.repos.d目录中即可

wget -O /etc/yum.repos.d/docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)列出并排序存储库中可用的版本。此示例按版本号(从高到低)的结果进行排序

yum list docker-ce --showduplicates | sort -r

安装Docker

yum -y install docker-ce

如果启用了多个 Docker 仓库,则在 yum install 或 yum update 命令中未指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合稳定性需求。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装

(4)启动Docker

systemctl start docker

(5)查看已安装的Docker版本

docker version

配置加速器:

1)阿里云容器镜像服务

选择控制台——登录——选择容器镜像服务——选择镜像加速器——选择CentOS的安装方法——按照步骤执行命令

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://0bdqatjm.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

2)如果以上方法不好用,可以按以下方法,连接国内目前所有可用的镜像源

sudo tee /etc/docker/daemon.json <<EFO

{

 "registry-mirrors": [

       "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",

     "https://docker.m.daocloud.io",

     "https://hub-mirror.c.163.com",

     "https://mirror.baidubce.com",

     "https://your_preferred_mirror",

     "https://dockerhub.icu",

     "https://docker.registry.cyou",

     "https://docker-cf.registry.cyou",

     "https://dockercf.jsdelivr.fyi",

     "https://docker.jsdelivr.fyi",

     "https://dockertest.jsdelivr.fyi",

     "https://mirror.aliyuncs.com",

     "https://dockerproxy.com",

     "https://mirror.baidubce.com",

     "https://docker.m.daocloud.io",

     "https://docker.nju.edu.cn",

     "https://docker.mirrors.sjtug.sjtu.edu.cn",

     "https://docker.mirrors.ustc.edu.cn",

     "https://mirror.iscas.ac.cn",

     "https://docker.rainbond.cc",

     "http://hub-mirror.c.163.com"

   ]

}

EFO

systemctl daemon-reload

systemctl restart docker

三、Docker镜像的搜索及获取

补充:Docker命令tab自动补全

yum -y install bash-completion

重新登录shell

1、镜像获取位置

(1)Docker hub官方仓库

(2)本地私有仓库(本机或内部公共仓库)

注:hub.docker.com为官方镜像站点,需通过vpn连接后可以登录

2、镜像搜索

语法:docker search 镜像名

3、镜像获取(如果不写标签,则为latest,即最新版本)

语法:docker pull 镜像名:tag

例:

docker pull centos:7

docker pull nginx:1.20

4、查看镜像信息

docker images

5、为 centos:7 镜像创建一个新的标签 latest,使 centos:latest 指向 centos:7 镜像

docker tag centos:7 centos:latest

docker images

6、删除镜像

删除指定镜像:

docker rmi centos:latest

docker images

删除所有镜像:

docker rmi -f $(docker images -q)

7、镜像迁移

导出镜像

docker save -o centos.tar centos:7

删除镜像

docker rmi centos:7

查看所有镜像

docker images

导入镜像

docker load -i centos.tar

查看所有镜像

docker images

四、容器操作

1、容器的创建和启动

创建容器:

语法:docker create [选项] <镜像名称> [命令] [参数]

-it  以交互模式运行容器,并分配一个伪终端(通常用于调试或运行交互式应用,如 Bash)。

-d  以后台模式运行容器(守护进程)

-p <主机端口>:<容器端口>  将主机的端口映射到容器的端口(端口映射)

docker create -it centos:7 /bin/bash

列出所有容器(包括正在运行的和已停止的):

docker ps -a

启动容器:

docker start 224eb98bde19

列出所有容器:

docker ps

STATUS(容器的当前状态):

Up:容器正在运行

Exited:容器已停止

Created:容器已创建但未启动

创建并启动容器

docker run -d -p 80:80 nginx:1.20

docker ps

2、停止容器

docker ps

docker stop 4bf366d052aa

docker ps -a

3、容器的进入和退出

docker ps -a

docker exec -it 224eb98bde19 /bin/bash

exit   退出当前环境,/bin/bash命令结束,没有其它进程时,容器将停止运行

Ctrl+p+q  保持当前环境不变,容器继续运行(持续按住Ctrl,再按p,按q)

注:

docker exec 用于在容器中启动新的进程(如:/bin/bash、ls等)

docker attach 用于连接到运行容器的控制台(没有分配终端时,不能使用,如-d后台运行时)

测试:

后台运行nginx服务,没开终端

docker run -d -P nginx:1.20

查看容器信息

docker ps -a

进入容器时,打开/bin/bash子进程,然后退出,exit不会结束容器运行

docker exec -it fc00520fa1f2 /bin/bash

docker ps -a

因为容器未打开终端,不能进入容器,按ctrl+c终止命令,容器也会结束

docker attach 5f55aba45449

ctrl+c打断

docker ps -a

4、容器的迁移

导出文件

docker export fc00520fa1f2 > nginx.tar

导入镜像

cat nginx.tar | docker import - nginx:1

docker images

5、删除容器

docker ps -a

docker rm fc00520fa1f2

docker ps -a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值