Docker的安装和基本操作

Docker的安装及基本操作

docker环境准备

1.下载阿里源和扩展源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.下载docker需要的依赖

yum install -y yum-utils device-mapper-persistent-data lvm2  #docker的依赖

3.添加aliyum的docker源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #添加阿里docker源

4.清除旧缓存,建立新缓存

yum clean all  #清理旧缓存
yum makecache  #生成新缓存

docker安装

1.查看系统支持的docker版本

yum list docker-ce --showduplicates | sort -r   #列出所有的docker版本

2.选择稳定版本 --3:18.09.9-3.el7

yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9  #安装docker

3.启动docker

systemctl start docker  #启动docker
systemctl enable docker  #设置开机自启

4.查看docker是否正常启动

Client端和Sever端都正常启动,表示docker启动正常,否则失败

Client:                  
 Version:           18.09.9    #服务端正常启动
 API version:       1.39
 Go version:        go1.11.13
 Git commit:        039a7df9ba
 Built:             Wed Sep  4 16:51:21 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.9   #客户端正常启动
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.11.13
  Git commit:       039a7df
  Built:            Wed Sep  4 16:22:32 2019
  OS/Arch:          linux/amd64
  Experimental:     false

5.配置docker镜像加入

登录你的阿里云账号—>搜索容器镜像服务—>镜像加速器

创建加速器文件

vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://ebqussbu.mirror.aliyuncs.com"]  #镜像加速
}

6.重新加载docker

systemctl daemon-reload
systemctl restart docker

Docker镜像的基本操作

镜像的查找

在这里插入图片描述

docker search nginx  #查找nginx镜像
NAME                      DESCRIPTION                             STARS               OFFICIAL            AUTOMATED
#镜像名称                  #镜像的描述                             #对镜像的评分         #是否是官方的
nginx                     Official build of Nginx.                14228               [OK]                

拉取镜像到本地

从镜像仓库拉取镜像到本地保存

docker pull nginx  #拉取nginx镜像到本地            ##########拉取的版本默认是最新版本#############
Using default tag: latest
latest: Pulling from library/nginx   #配置镜像加速以后下载会很快
6ec7b7d162b2: Pull complete 
cb420a90068e: Pull complete 
2766c0bf2b07: Pull complete 
e05167b6a99d: Pull complete 
70ac9d795e79: Pull complete 
Digest: sha256:4cf620a5c81390ee209398ecc18e5fb9dd0f5155cd82adcbae532fec94006fb9   #镜像的地址是一个哈希值
Status: Downloaded newer image for nginx:latest

拉取指定的镜像版本

docker pull ubuntu:18.04  #指定Ubuntu的版本,在镜像的名称后加上:指定版本号,下载指定的镜像
18.04: Pulling from library/ubuntu
f22ccc0b8772: Pull complete 
3cf8fb62ba5f: Pull complete 
e80c964ece6a: Pull complete 
Digest: sha256:fd25e706f3dea2a5ff705dbc3353cf37f08307798f3e360a13e9385840f73fb3
Status: Downloaded newer image for ubuntu:18.04  #下载的指定的版本

查看下载到本地的镜像列表

docker images  #查看下载到本地的镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
#仓库               #版本                #下载镜像的ID       #创建的时间          #镜像大小
nginx               latest              ae2feff98a0c        2 weeks ago         133MB
ubuntu              18.04               2c047404e52d        5 weeks ago         63.3MB

删除镜像

删除镜像可以使用镜像的ID号、名称、名称:TAG值(当ID和名称相同的时候使用TAG值)

docker rmi ae2feff98a0c  #删除镜像可以指定镜像的ID或者名称,每个镜像的ID是唯一的,但是名称不是,建议使用ID删除
Untagged: nginx:latest   #这里删除的是Nginx的镜像
Untagged: nginx@sha256:4cf620a5c81390ee209398ecc18e5fb9dd0f5155cd82adcbae532fec94006fb9
Deleted: sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd
Deleted: sha256:782ae030602867e568a53a99643844e8b06702a851c4b0a09c817deae2520b28
Deleted: sha256:8b5b86a154fd4e4098f3f55cd5b71204560cef2e9f50e18e84ada5cb8fb3ae03
Deleted: sha256:528e7c6bece2def770f60aa8722648031a17de5e2df10e776acf955ef8ec90d0
Deleted: sha256:ffb8d6c7eb6938709ca6d1f39f58971ccc5f10372ec3e37e72c7cbc065bbfb57
Deleted: sha256:87c8a1d8f54f3aa4e05569e8919397b65056aa71cdf48b7f061432c98475eee9

docker rmi ubuntu:18.04  #使用镜像的名称:版本,这种方式删除镜像
Untagged: ubuntu:18.04
Untagged: ubuntu@sha256:fd25e706f3dea2a5ff705dbc3353cf37f08307798f3e360a13e9385840f73fb3
Deleted: sha256:2c047404e52d7f17bdac4121a13cd844447b74e13063f8cb8f8b314467feed06
Deleted: sha256:9459b6a89846db0723e467610b841e6833dbb2aae6133319a91f2f70c388afac
Deleted: sha256:9a9311f7fcddf94f7476ce89f9703e8360e8cf347ef486a280735f5cf98888cd
Deleted: sha256:b43408d5f11b7b2faf048ae4eb25c296536c571fb2f937b4f1c3883386e93d64

标记镜像

docker tag ubuntu aliyun/ubuntu:v1  #将ubuntu的TAG标记为v1
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
aliyun/ubuntu       v1                  f643c72bc252        5 weeks ago         72.9MB 
ubuntu              latest              f643c72bc252        5 weeks ago         72.9MB
#发现v1的ID和latest的ID相同,这时删除镜像的时候就需要使用 名称:tag 来删除了

登录镜像仓库和退出镜像仓储

这里的账户是需要到docker的官网注册的,这里使用的DockerHup的账户是:18336607017

登录镜像仓库
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: 18336607017
Password:   #输入密码以后就会登录到镜像仓库
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded  #登录成功
退出镜像仓库
docker logout  #退出登录
Removing login credentials for https://index.docker.io/v1/

推送镜像到DockerHup

你使用账户登录到镜像仓库以后,可以向本地推送镜像

也可以向DockerHup推送镜像

docker push  #私有仓库的时候使用,从DockerHup向本地推送镜像
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae2feff98a0c        2 weeks ago         133MB
aliyun/ubuntu       v1                  f643c72bc252        5 weeks ago         72.9MB
ubuntu              latest              f643c72bc252        5 weeks ago         72.9MB
ubuntu              18.04               2c047404e52d        5 weeks ago         63.3MB

docker tag ae2feff98a0c 18336607017/nginx:v1 #需要注意的是,在向仓库推送镜像之前,是需要先标记镜像的,这里使用的是ID标记的
docker push 18336607017/nginx:v1   #将已经标记好的Nginx镜像推送到了DockerHuo仓库中
The push refers to repository [docker.io/18333607017/nginx]
4eaf0ea085df: Mounted from library/nginx 
2c7498eef94a: Mounted from library/nginx 
7d2b207c2679: Mounted from library/nginx 
5c4e5adc71a8: Mounted from library/nginx 
87c8a1d8f54f: Mounted from library/nginx 
v1: digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71 size: 1362

推送到DockerHup仓库以后,登录仓库进行验证

查看镜像的详细信息

docker inspect ae2feff98a0c  #使用的是镜像的ID,查看镜像的详细信息,可以用到镜像,也可以用到容器 
[
    {
        "Id": "sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd",
        "RepoTags": [
            "18333607017/nginx:v1",
            "nginx:latest"
            ...............

镜像的导入和导出

从docker中将镜像导出来,可以很方便的对镜像进行传输,也可以将外部镜像导入到docker中

镜像导出
docker save -o nginx.tar ae2feff98a0c  #将镜像导出为nginx.tar,这里使用的是镜像的ID号,参数-o表示将镜像打包成什么
ll  #查看打包的镜像文件
total 133924
-rw------- 1 root root 137134592 Jan  1 13:08 nginx.tar
镜像导入

方式一:

docker load -i nginx.tar  #将nginx.tar这个包中的镜像导入到docker中
87c8a1d8f54f: Loading layer   72.5MB/72.5MB
5c4e5adc71a8: Loading layer   64.6MB/64.6MB
7d2b207c2679: Loading layer  3.072kB/3.072kB
2c7498eef94a: Loading layer  4.096kB/4.096kB
4eaf0ea085df: Loading layer  3.584kB/3.584kB
Loaded image ID: sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd

方式二:

[root@master ~]# docker load < nginx.tar  #通过输入重定向的方式将镜像导入到docker中
87c8a1d8f54f: Loading layer   72.5MB/72.5MB
5c4e5adc71a8: Loading layer   64.6MB/64.6MB
7d2b207c2679: Loading layer  3.072kB/3.072kB
2c7498eef94a: Loading layer  4.096kB/4.096kB
4eaf0ea085df: Loading layer  3.584kB/3.584kB
Loaded image ID: sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值