Docker快速入门指南

这是docker快速上手使用指南,记录了常见的docker语法,希望可以帮助到需要的您!

一、Centos下 docker的安装

1、更新update到最新的版本(一般可不执行此步骤)

yum  update

2、卸载老版本docker

yum  remove docker  docker-common docker-selinux  docker-engine

3、安装需要的软件包

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

4、设置yum源

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

5、查看docker版本

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

6、安装docker

yum  install  docker-ce-18.03.1.ce -y

7、启动docker

systemctl start docker

8、加入开机自启

systemctl enable docker

9、配置国内镜像和指定docker挂载目录
vi /etc/docker/daemon.json


{
     "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],
     "data-root": "/home/docker"
}

二、 docker基本概念

Docker 包括三个基本概念
镜像(Image)
容器(Container)
仓库(Repository)

Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

Docker 容器
Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

Docker 仓库
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。
快速入门

2.启动容器

docker  run  -itd  --name redis1 redis

3.进入容器

docker  exec  -it  swoft1  bash 

4.删除 停止所容器

docker stop  $(docker ps -a -q)
docker rm  $(docker ps -a -q) 

5、容器网络
Docker安装后,默认会创建下面三种网络类型

docker network ls  查看默认的网络

在启动容器时使用 --network bridge 指定网络类型

bridge:桥接网络

默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了

none:无指定网络
使用 --network=none ,docker 容器就不会分配局域网的IP

host: 主机网络
使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。
例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中

  • 指定自定义网络

因为默认的网络不能制定固定的地址,所以我们将创建自定义网络,并指定网段:192.168.11.0/24并命名为mynetwork,指令

如下:

docker  network create  --subnet=192.168.11.0/24  mynetwork
  • 运行容器
docker run -itd --name  nginx  --net mynetwork  -p  8080:8099 --ip 192.168.11.2  nginx

参数说明:

-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-v 共享目录,格式为: 宿主机绝对路径:容器绝对路径
–ip: 为容器制定一个固定的ip
–net: 指定网络模式

  • 查看下结果
docker ps -a 
docker container
  • 查看容器ip地址
docker network inspect mynetwork
  • 进入容器
 docker exec  -it  nginx    bash

三、容器镜像制作及镜像导出

  • 将容器制作为新的镜像
     格式:docker commit -m ‘镜像描述’ -a ‘制作者’ 容器名 镜像名
docker commit -m test-nginx-summary -a 'royee' test-nginx test-nginx-os

在这里插入图片描述

  • 容器导出为镜像文件
//格式为 docker export -o 文件名 容器名

docker export -o royeeapi.tar lnmp
  • 导入镜像文件,并指定镜像名字
//将royeeapi.tar复制到另一台机器,可以将其导入为镜像。
//格式为 docker import 文件名 镜像名
docker import royeeapi.tar lnmp
  • 导出镜像为文件
//格式为 docker save -o 保存镜像文件名 原镜像名
docker save -o royeeapi.tar lnmp
  • 导入镜像
//格式为 docker load < 镜像文件名
docker load < royeeapi.tar

四、上传镜像至dockerhub

  • 创建仓库
1、主要命令介绍 docker tagdocker push

docker tag : 标记本地镜像,将其归入某一仓库。
语法: docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
用法: 将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。
docker tag ubuntu:15.10 runoob/ubuntu:v3

2、详细用例

登录【docker hub】https://hub.docker.com/
在这里插入图片描述

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
royee-novnc         latest              d8e2a86f0f89        4 hours ago         3.62GB
test-nginx-os       latest              03c644991b6d        23 hours ago        133MB
nginx               latest              08b152afcfae        11 days ago         133MB
2233466866/lnmp     latest              eea70517b175        7 weeks ago         2.58GB
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# docker tag royee-novnc royeecai/royee-vnc:latest
[root@localhost ~]# docker images 
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
royee-novnc          latest              d8e2a86f0f89        5 hours ago         3.62GB
royeecai/royee-vnc   latest              d8e2a86f0f89        5 hours ago         3.62GB
test-nginx-os        latest              03c644991b6d        23 hours ago        133MB
nginx                latest              08b152afcfae        11 days ago         133MB
2233466866/lnmp      latest              eea70517b175        7 weeks ago         2.58GB
[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: royeecai
Password: 
Login Succeeded
[root@localhost ~]# docker push royeecai/royee-vnc:latest
The push refers to repository [docker.io/royeecai/royee-vnc]
6672cd9b975a: Pushed 
a8e5c49dbe62: Mounted from 2233466866/lnmp 
d08e41b1c0ef: Mounted from 2233466866/lnmp 
174f56854903: Mounted from 2233466866/lnmp 
latest: digest: sha256:92b670557b25de77c8530db18887fc48a73dbffc4b45dd1e32a8d1d49f57d3ce size: 1169


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值