Docker的基本安装和使用

docker设计.png
  1. 虚拟机是运行于操作系统之上的系统,通常通过虚拟机管理程序对主机资源进行访问,会消耗大量的资源。

  2. docker 则在Linux本地运行,与其他容器一起共享主机资源,不会占用其他程序的资源,从而显得更加轻巧。

Docker 的组件

docker架构.png
  1. 镜像images:可以理解为一个完整的操作系统,里面部署了你想要的应用代码。

  2. 容器 containers:依据镜像创建的实例,可以启动、停止、开始、删除,镜像里面的基础代码,容器可以配置个性化代码(例如各种配置文件、日志文件等等)

  3. 仓库 registry:这个跟maven的远程仓库一样,保存了很多镜像。市场上有很多公用的仓库,DockerHub是官方,但是在国内访问很慢,也有阿里、网易等多家互联网公司提供镜像仓库。

    当然,你可以根据需要,自己在本地网络新建一个仓库。

  4. 客户端 dockerclient:理解为你的开发机器,但是你需要安装一个dockerclient,可以是IDEA的docker插件。

  5. 服务器 dockerserver :理解为你需要部署的服务器,需要安装Docker Engine-Community

Docker的在CentOs下安装

Docker支持以下64位的操作系统

  • CentOS 7
  • CentOS 8
  • 更高版本...
  1. 卸载旧版本
$  sudo yum remove docker \
         docker-client \
         docker-client-latest \
         docker-common \
         docker-latest \
         docker-latest-logrotate \
         docker-logrotate \
         docker-engine 
  1. 安装初始化依赖
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 设置安装仓库
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装Docker Engine-Community
$ sudo yum install docker-ce docker-ce-cli containerd.io
  1. 启动Docker,并设置为开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
  1. 验证安装是否成功
$ sudo docker run hello-world

启动以后,如果安装成功会输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.
 .......

Docker 安装、启动、更新常用命令

sudo systemctl daemon-reload     #刷新/etc/docker/daemon.json文件
sudo systemctl enable docker-tcp.socket  #刷新/etc/systemd/system/docker-tcp.socket文件
sudo systemctl stop docker       #停止docker服务
sudo systemctl start docker-tcp.socket  #启用docker-tcp服务,这个用于非本机客户端访问docker
sudo systemctl start docker     #启动docker服务
sudo systemctl restart docker   #重启docker服务

Docker 下载镜像、设置镜像加速

  1. 设置镜像加速

    a) 设置了镜像加速器以后,如果一个镜像拉取不到,则会切换到加速器的地址。

    b) 对于Ubuntu 16.04+、Debian 8+、CentOS 7系统,先建立一个 /etc/docker/daemon.json ,在文件中写入如下内容。

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

​ c) 之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
  1. 镜像的下载

    使用pull命令下载镜像,如果没有版本号,则默认最新版本。

docker pull nginx

Docker 镜像操作的基本命令

查询镜像

docker search nginx

获取一个镜像

docker pull nginx

列出本机镜像列表

docker images 

删除本机镜像

docker rmi hello-world

更新本机镜像,这个需要先启动一个容器,在容器里面更新

docker run -t -i nginx /bin/bash
#进入容器以后执行更新命令
docker commit -m="has update" -a="runoob" e218edb10161 runoob/nginx:v2

创建自己的镜像

这个多种方式,可以依据另外一个现有的镜像克隆一个镜像。也可以使用 docker build 依据 Dockerfile 文件 创建对象,创建的文件内容如下

FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'runoob:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

通过docker build命令创建

docker build -t runoob/centos:6.7

最后通过 docker images命令查询名字为runoob/centos:6.7的镜像

docker images

Docker 容器的使用

列举常用的操作

  1. 启动
docker run -it ubuntu /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • -d:后台运行
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

  1. 查看所有停止容器或运行容器
docker ps -a #查看所有
docker ps    #查看启动
  1. 停止一个容器
docker stop <容器 ID>   #<容器 ID>,例如1e560fca3906,不需要<>
  1. 重启一个容器
docker restart <容器 ID>
  1. 容器也是一个操作系统,所以,可以进入容器

    docker attach

    docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

docker attach <容器 ID>  #退出会导致容器停止
docker exec -it <容器 ID> /bin/bash
  1. 导入和导出容器
docker export <容器 ID> > ubuntu.tar

以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

指定某个URL导入

docker import http://example.com/exampleimage.tgz example/imagerepo
  1. 删除容器
docker rm -f <容器 ID>   

-f:强制删除

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容