Docker 初相识

in 运维 with 10 comments

Docker 简介

—— 摘自 Docker 中文社区 >> http://www.docker.org.cn/

Docker.png

Docker 核心概念

Docker 安装部署

系统环境:使用 CentOS-7-x86_64-Minimal 最小化安装;
测试版本:Docker version 19.03.1, build 74b1e89
''' 添加官方 YUM 源 '''
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
''' 也可以阿里云 YUM 源 '''
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo    <<< 效果同上
''' 开始安装 '''
[root@C1 ~]# yum clean all
[root@C1 ~]# yum makecache
[root@C1 ~]# yum -y install docker-ce
[root@C1 ~]# 
[root@C1 ~]# docker -v    <<< 查看版本
Docker version 19.03.1, build 74b1e89
[root@C1 ~]# docker version    <<< 详细版本信息
[root@C1 ~]# 
[root@C1 ~]# systemctl start docker
[root@C1 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@C1 ~]# 
[root@C1 ~]# docker search centos
[root@C1 ~]# docker pull centos
[root@C1 ~]# docker images

''' 配置镜像加速器 '''
[root@C1 ~]# vim /etc/docker/daemon.json    <<< 最好申请个阿里云镜像加速,需要开发者账号
{
  "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com"]
}
systemctl daemon-reload
systemctl restart docker

''' 给镜像打 tag '''
[root@C1 ~]# docker tag centos new_centos
[root@C1 ~]# docker tag centos new_centos:201908     <<< tag 类似于链接快照
[root@C1 ~]#
[root@C1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              67fa590cfc1c        4 days ago          202MB
new_centos          201908              67fa590cfc1c        4 days ago          202MB
new_centos          latest              67fa590cfc1c        4 days ago          202MB
[root@C1 ~]# 

''' 删除镜像 '''
[root@C1 ~]# docker rmi new_centos
Untagged: new_centos:latest
[root@C1 ~]# docker rmi new_centos:201908    <<< 删除 tag
Untagged: new_centos:201908
[root@C1 ~]# docker rmi centos    <<< 删除镜像
[root@C1 ~]# docker rmi 67fa590cfc1c    <<< 删除 ID 表示删除镜像和所有标签
''' 常用选项:-i 标准输入打开,-t 分配一个伪终端,-d 后台运行,--name 指定名称(不加会随机产生一个) '''
[root@C1 ~]# docker run -itd centos
84c7b5e442eab2799b171d759bce0485e8cc1da6435e11c81ec26f3230334a10
[root@C1 ~]# 
[root@C1 ~]# docker ps    <<< 查看运行的容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1fe30850f22d        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            epic_elbakyan
[root@C1 ~]# docker ps -a   <<< 查看所有,包括停止的
[root@C1 ~]# 
[root@C1 ~]# docker exec -it 84c7b5e442ea bash    <<< 进入容器,操作时可以使用 ID 或者 NAME
[root@84c7b5e442ea /]# 
[root@84c7b5e442ea /]# yum makecache           
[root@84c7b5e442ea /]# yum install -y net-tools

''' 其他常规操作 '''
[root@C1 ~]# docker stop epic_elbakyan    <<< 停止容器
epic_elbakyan
[root@C1 ~]# docker start epic_elbakyan    <<< 启动容器
epic_elbakyan
[root@C1 ~]# docker exec -it epic_elbakyan bash    <<< 进入容器
[root@84c7b5e442ea /]# 
[root@C1 ~]# docker rm epic_elbakyan    <<< 删除容器,删除非停止状态的容器加 -f 选项

如下图,Docker 默认给虚机分发了地址、网关,做了 NAT;
虚机地址 172.17.0.2/16,宿主机上 docker0 网卡地址为 172.17.0.1/16(网关);
而且每多运行一个容器,宿主机上就多一个桥接网卡(如下图中 veth7c3f27c@if4)。

Docker_1.png

Docker_2.png

''' 常用选项:-m 添加备注信息,-a 添加作者信息 '''
[root@C1 ~]# docker commit -m 'Just install net-tools' -a 'alin' epic_elbakyan new_centos    <<< 创建新镜像
sha256:af4960e07f7f7008b0e66030ee8ef195a1d855db34bc5bc49f09546d1dde1e7b
[root@C1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
new_centos          latest              af4960e07f7f        8 seconds ago       472MB
centos              latest              67fa590cfc1c        5 days ago          202MB
[root@C1 ~]# 
[root@C1 ~]# docker run --name new_centos -itd new_centos
[root@C1 ~]# docker stop new_centos
[root@C1 ~]# docker export -o new_centos.tar new_centos    <<< 导出容器到 linux 目录
[root@C1 ~]# docker import new_centos.tar centos_install_net-tools    <<< 从 linux 目录导入镜像
[root@C1 ~]# docker run --name centos_with_tools -itd centos_install_net-tools bash

Docker 高级操作

主要是技巧性的东西,另起了一篇


2019年06月18日,调整了文档结构

Comments are closed.
  1. 遇到问题:WARNING: IPv4 forwarding is disabled. Networking will not work.
    解决方法:在宿主机上 echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/00-system.conf
    之后重启网络服务 systemctl restart network

  2. Tracymub

    你好!.

    我可以在哪里免费下载XEvil在您的网站?
    从你的支持得到的信息。 XEvil确实是解决验证码的最佳方案,但我需要最新版本。

    多謝。.

  3. Meet my family. There are five of us – my parents, my elder brother, my baby sister and me. First, meet my mum and dad, Jane and Michael. My mum enjoys reading and my dad enjoys playing chess with my brother Ken what if. My mum is slim and rather tall. She has long red hair and big brown eyes. She has a very pleasant smile and a soft voice.

  4. Fantastic posts. Thank you! https://maxbestsite.com/

  5. вполне себе годнота
    _
    Хоккей трактор авангард прогнозы

  6. ничего особенного