Docker安装部署,镜像和容器的基本使用命令,export\import,save\load,commit以及Dockerfile

一、Docker安装部署

使用aliyun docker yum源安装新版docker
docker-ce企业版docker
docker-ee社区版docker

1、删除已安装的Docker

注意:这一步是可选项,如果系统中存在docker我们就删除

[root@localhost ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

2、配置阿里云Docker Yum源

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装Docker
1)安装Docker指定版本:

先查看Docker的所有版本,在选择你想要安装的版本

[root@localhost ~]# yum list docker-ce --showduplicates

需要指定完整的rpm包的包名,并且加上- -setopt=obsoletes=0这个参数,以安装17.03.2版本为例:

[root@localhost ~]# yum install -y --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

2)安装Docker最新版本(我采用的这个)

[root@localhost ~]# yum -y install docker-ce

4、启动Docker

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker#开机自启

查看Docker版本

[root@localhost ~]# docker -v在这里插入图片描述

查看docker运行状态

[root@localhost ~]# docker info

二、国内外镜像仓库的使用

1、国内镜像的使用

国内镜像网站
https://www.daocloud.io

国内docker镜像仓库,它不仅支持命令的方式获取docker镜像,也支持以图形化的方式获取docker镜像

下载任何镜像都可以采用这两种方式,这里以获取tomcat的docker镜像为例:

1)以命令方式

使用命令的方式获取tomcat镜像,可以参照官方给的命令来获取:
在这里插入图片描述
按照命令下载镜像
在这里插入图片描述
按照命令使用镜像
在这里插入图片描述

服务器操作如下:先下载镜像,再使用镜像

[root@localhost ~]# docker pull daoclould.io/library/tomcat:8.0.45#下载镜像
[root@localhost ~]# docker run -itd -p 8080:8080 --rm daocloud.io/library/tomcat:8.0.45#使用镜像
其实可以不用执行第一条下载镜像的命令,可以直接执行第二句,当检测到本地没有要使用的镜像的话,会自动下载

2)以图形化方式

使用图形化的方式获取tomcat镜像:

首先需要将daocloud与服务器进行关联
在这里插入图片描述
在这里插入图片描述
在服务器上执行命令,使服务器与daocloud关联
在这里插入图片描述
关联完成之后,选择你要下载的镜像(这里选择了tomcat)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时在浏览器中以服务器ip+容器映射的端口便可以访问tomcat。
在这里插入图片描述

2、国外镜像的使用

国外镜像网站
https://hub.docker.com

国外镜像网站也是docker的官方镜像仓库,它只能以命令的方式下载镜像

以使用nginx镜像为例,官方会提供命令

在这里插入图片描述

下载镜像

在这里插入图片描述

使用镜像
在这里插入图片描述

服务器的操作如下:

[root@localhost ~]# docker pull nginx
[root@localhost ~]# docker run -itd --name zy -p 666:80 nginx
在这里插入图片描述

此时在浏览器中以服务器ip+容器映射的端口便可以访问nginx

在这里插入图片描述

3、镜像加速器

使用Docker的时候,需要经常从官方仓库获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响了docker的使用体验。因此DaoDloud推出了加速器工具来解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问Docker Hub的速度,目前已经拥有了广泛的用户群体,并得到了Docker官方的大力推荐。

点击daocloud网站的小火箭图标,有配置加速器的命令文档
在这里插入图片描述
在这里插入图片描述

1、配置Docker镜像站

[root@localhost ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

2、重启docker

[root@localhost ~]# systemctl restart docker

4、登陆退出Docker Hub

登录到自己的Docker register,需要有Docker Hub的注册账号

登陆

[root@localhost ~]# docker login
在这里插入图片描述

退出

[root@localhost ~]# docker logout
在这里插入图片描述

三、Docker命令使用

1、基本命令

(1)基本命令

[root@localhost ~]# systemctl start docker#启动docker
[root@localhost ~]# systemctl stop docker#关闭docker
[root@localhost ~]# systemctl restart docker重启docker‘’
[root@localhost ~]# systemctl enable docker#开机自启

(2)帮助手册

[root@localhost ~]# docker --help#查看docker的帮助文档
[root@localhost ~]# docker run --help#查看docker的run命令的帮助文档

(3)查看版本和信息

[root@localhost ~]# docker -v
[root@localhost ~]# docker info
在这里插入图片描述

2、docker镜像的命令

(1)查看本地镜像

[root@localhost ~]# docker images

(2)拉取镜像
不加版本号tag的话,将会拉取镜像的最新版本latest,加上tag的话,即拉取指定版本

[root@localhost ~]# docker pull 镜像名
[root@localhost ~]# docker pull 镜像名:版本

(3)删除镜像

[root@localhost ~]# docker rmi 镜像名称:版本

[root@localhost ~]# docker rmi 镜像id

3、docker容器的命令

(1)查看正在运行的容器

[root@localhost ~]# docker ps
在这里插入图片描述
字段含义:
CONTAINER ID:容器的ID
IMAGE:使用的镜像
COMMAND: 启动容器时运行的命令
CREATED:容器创建的时间
STATUS:容器的状态
PORTS :容器的端口信息和使用的链接类型
NAMES:容器的名称

(2)查看所有的容器

[root@localhost ~]# docker ps -a

(3)查看所有容器的id

可以用于批量删除容器时

[root@localhost ~]# docker ps -a -q#-a显示全部,-q只显示id
[root@localhost ~]# docker rm $(docker ps -a -q)#批量删除所有容器

(4)查看某个容器的详细信息

[root@localhost ~]# docker inspect 容器名或容器id
在这里插入图片描述

(5)运行容器

容器怎么来呢,通过run命令来将一个镜像构建成一个容器

run命令的参数:

-d              #后台运行,并返回容器id
-i              #以交互模式运行容器,通常与-t同时使用
-t              #为容器重新分分配一个伪输入终端,通常与-i同时使用
-p              #端口映射,格式为:主机(宿主)端口:容器端口
-v              #文件映射,格式为:主机目录:容器目录
-h              #定义容器主机名
--name “名称”    #为容器指定一个名称
--privileged    #以特权模式运行

例子:

运行容器,使用daocloud.io/library/tomcat:8.0.45镜像,以后台模式运行容器,容器命名为tomcat-zy,

[root@localhost ~]# docker run -itd --name tomcat-zy daocloud.io/library/tomcat:8.0.45
在这里插入图片描述

运行容器,使用nginx:v1镜像,以后台模式启动一个容器,容器命名为nginx,将容器的80端口映射到宿主机的8088端口,将容器的目录/usr/local/nginx/html映射到主机的目录/root/dist上

[root@localhost ~]# docker run -itd --name nginx -p 8088:80 -v /root/dist:/usr/local/nginx/html nginx:v1

(6)进入容器内部

[root@localhost ~]# docker exec -it 容器名字或容器id /bin/bash

(7)停止容器

[root@localhost ~]# docker stop 容器名字或容器id

(8)启动容器

[root@localhost ~]# docker start 容器名字或容器id

(9)删除容器

 删除容器,需要先将容器停止

[root@localhost ~]# docker rm 容器名字或容器id

(9)复制文件

 删除容器,需要先将容器停止

[root@localhost ~]# docker rm 容器名字或容器id

4、容器与镜像的导入导出
1)export,import容器导入导出

将容器的文件系统打包成tar包

export导出:有两种方式
第一种:

[root@localhost ~]# docker export -o zy.tar zhangyu
在这里插入图片描述

第二种:

[root@localhost ~]# docker export zhangyu > zy.tar
在这里插入图片描述

import导入
导入容器tar包,导入后是一个镜像

[root@localhost ~]# docker import xxx.tar newname:tag
例如:
[root@localhost ~]# docker import zy.tar tomcat:v1
在这里插入图片描述

注意:run运行import导入的镜像时,必须加上/bin/bash,否则将报错Error response from daemon: No command specified.

2)save,load镜像的导入导出

将镜像打为tar包,可以导入其他主机

save打包镜像

[root@localhost ~]# docker save -o centos.tar daocloud.io/library/centos:7

load加载打包的镜像

[root@localhost ~]# docker load < centos.tar

3)commit构建镜像

commit可以将操作过的容器创建成一个新的镜像

docker commit [容器名称|ID] 生成新的镜像名字​​
例子:
[root@localhost ~]# docker commit -m "my images version1" -a "zhangyu" 108a85b1ed99 daocloud.io/ubuntu:v2
常用参数:
​-a:提交的镜像作者​​
​​-c:使用dockerfile指令来创建镜像​​
​​-m:提交时的说明文字​​
​​-p:在commit的时候,将正在运行的容器暂停

四、利用Dockerfile创建镜像

Dockerfile中的参数/指令
1、FROM 指定基础镜像
2、MAINTAINER 描述信息
3、ENV 设定环境变量
4、RUN 运行命令
5、ADD 添加文件到容器,若是压缩包,会自动解压
6、COPY 拷贝文件,与ADD不同,不会自动解压压缩包
7、WORKDIR 指定工作目录
8、EXPOSE 指定工作目录
9、CMD 指定镜像运行的命令

例子:

自己构建一个nginx镜像,编写一个dockerfile文件,该文件的内容是以一个centos镜像为基础,在容器中编译安装nginx后,重新构建为一个新的镜像,

先准备一个centos7的docker基础镜像
在这里插入图片描述

编写dockerfile文件

每行命令都是以 指令(大写)+清单 的方式编写。
在这里插入图片描述
内容为:

FROM daocloud.io/library/centos:7
MAINTAINER "wuyang0304" yuzhang0304@163.com
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
RUN yum clean all && yum makecache fast
RUN yum -y install gcc openssl openssl-devel pcre-devel zlib-devel make
ADD nginx-1.22.0.tar.gz /usr/local/
WORKDIR /usr/local/nginx-1.22.0
RUN ./configure --prefix=/usr/local/nginx
RUN make && make install
WORKDIR /usr/local/nginx
RUN rm -rf /usr/local/nginx-1.22.0
ENV NGINX_HOME=/usr/local/nginx
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/nginx/sbin
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

运行dockerfile文件创建镜像

[root@localhost ~]# docker bulid -t nginx-zy:v1 ..
在这里插入图片描述

"."是用来指明 我们的使用的Dockerfile文件当前目录,可以使用- -file, -f参数来指定Dockerfile的完整路径

此时已经创建好了一个新的镜像,可以本地使用也可以拷贝到其他docker服务器中使用

运行创建好的镜像

[root@localhost ~]# docker run -itd --name nginx-zy -p 81:80 nginx-zy:v1

通过服务器ip+端口的方式可以直接访问nginx,不用再重新部署nginx,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值