赞
踩
使用aliyun docker yum源安装新版docker
docker-ce企业版docker
docker-ee社区版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
[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
先查看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
[root@localhost ~]# yum -y install docker-ce
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
#开机自启
查看Docker版本
[root@localhost ~]# docker -v
查看docker运行状态
[root@localhost ~]# docker info
国内镜像网站
https://www.daocloud.io
国内docker镜像仓库,它不仅支持命令的方式获取docker镜像,也支持以图形化的方式获取docker镜像
下载任何镜像都可以采用这两种方式,这里以获取tomcat的docker镜像为例:
使用命令的方式获取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
#使用镜像
其实可以不用执行第一条下载镜像的命令,可以直接执行第二句,当检测到本地没有要使用的镜像的话,会自动下载
使用图形化的方式获取tomcat镜像:
首先需要将daocloud与服务器进行关联
在服务器上执行命令,使服务器与daocloud关联
关联完成之后,选择你要下载的镜像(这里选择了tomcat)
此时在浏览器中以服务器ip+容器映射的端口便可以访问tomcat。
国外镜像网站
https://hub.docker.com
国外镜像网站也是docker的官方镜像仓库,它只能以命令的方式下载镜像
以使用nginx镜像为例,官方会提供命令
下载镜像
使用镜像
服务器的操作如下:
[root@localhost ~]# docker pull nginx
[root@localhost ~]# docker run -itd --name zy -p 666:80 nginx
此时在浏览器中以服务器ip+容器映射的端口便可以访问nginx
使用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
登录到自己的Docker register,需要有Docker Hub的注册账号
登陆
[root@localhost ~]# docker login
退出
[root@localhost ~]# docker logout
(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
(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
(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
将容器的文件系统打包成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.
将镜像打为tar包,可以导入其他主机
save打包镜像
[root@localhost ~]# docker save -o centos.tar daocloud.io/library/centos:7
load加载打包的镜像
[root@localhost ~]# docker load < centos.tar
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中的参数/指令
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,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。