目录
docker服务器的安装
前提条件
操作系统要求
要安装Docker Engine,您需要一个CentOS 7的维护版本。不支持或未测试存档版本。
该centos-extras库必须启用。默认情况下,此存储库是启用的,但是如果已禁用它,则需要 重新启用它。
卸载旧版本
较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum报告未安装这些软件包,则可以。
的内容(/var/lib/docker/包括图像,容器,卷和网络)被保留。Docker Engine软件包现在称为docker-ce。
使用存储库安装
yum update #更新yum库
#设置存储库
#设置仓库,需要安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum install -y yum-utils device-mapper-persistent-data lvm2
#配置存储库为阿里镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce #安装docker
docker -v #查看docker版本确认docker安装成功。
卸载docker
#卸载Docker Engine,CLI和Containerd软件包:
yum remove docker-ce docker-ce-cli containerd.io
#主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
rm -rf /var/lib/docker
设置国内镜像源
创建 /etc/docker/daemon.json 文件,修改为如下形式
# vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
systemctl restart docker
国内镜像
docker 中国区官方镜像
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云容器 服务
https://cr.console.aliyun.com
docker的基本使用
docker基本命令
systemctl start docker #启动docker
systemctl status docker#查看docker状态
systemctl stop docker#关闭docker
systemctl restart docker#重启docker
systemctl enable docker #开启docker开机自启
docker info #查看docker概要信息
docker --help #查看docker在线帮助文档
docker镜像相关的命令
查看docker本地镜像
docker images #
搜所镜像
docker search centos #搜索关键字中含有censos的镜像
拉取镜像
删除镜像
docker pull tutum/centos #拉取镜像,查询出的镜像名称
docker rmi 镜像名称或者id # 删除指定镜像
docker rmi `docker images -q ` #删除所有镜像
docker容器相关的命令
查看容器
docker ps #查看正在运行的容器
docker ps -a #查看所有的容器
创建并且启动容器
docker run #创建并启动容器进本命令
docker run -it --name=容器名称 镜像名称:标签 /bin/bash #交互方式创建容器,退出容器后关闭
docker run -dt --name=容器名 镜像名:标签
-i : 表示运行容器
-t: 表示交互式容器,直接进入命令行
–name: 为创建的容器命名
-d: 守护进程的方式启动容器
-v: 目录映射(省去来回拷贝东西的烦恼)
-p:表示端口映射
开启、关闭或进入已存在的容器
docker stop 容器名称
docker start 容器名称
docker exec -it 容器名 /bin/bash
文件拷贝考入考出
docker cp 要拷贝文件的源目录 容器名称:容器中的路径 #考入
docker cp 容器名称:容器中的路径 宿主机目录#考出
目录挂载(解除来回拷贝的繁杂)
docker run -dt --name=mycentos3 -v /usr/local/myhtml/:/usr/local/myhtml tutum/centos:latest
查看ip地址以及ip地址的提取
docker inspect 容器名(容器id)
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名(容器id)
删除容器
docker rm 容器名称(容器ID)
docker的测试案例
配置mysql容器
docker pull mysql:5.6
docker images
docker run -di -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --query-port=3306/tcp
firewall-cmd --reload
安装tomcat
docker pull tomcat:jdk8
docker run -di --name=my -p 8080:8080 tomcat:jdk8
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --query-port=8080/tcp
部署nignx
docker pull nginx
docker run -di --name=mynginx -p 80:80 nginx:latest
模拟部署文件
echo '<h1>use my page</h1>' > 1.html
docker cp 1.html mynginx:/usr/share/nginx/html
部署redis
docker pull redis
docker run -di --name=myredis -p 6379:6379 redis
firewall-cmd --permanent --zone=public --add-port=6379/tcp
firewall-cmd --reload
docker的迁移和备份
容器保存为镜像
docker commit mynginx mynginx_new
docker run -di -p 81:80 mynginx_new
镜像备份为文件
docker save -o mynignx.tar mynginx_new
镜像的恢复与迁移
删除镜像
docer stop b677de541bd7
docker stop b677de541bd7
docker rm b677de541bd7
docker rmi mynginx_new
恢复镜像
docker load -i mynignx.tar
Dockerfile
定义
Dockerfile 是由一系列的命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个镜像
常用命令
FROM image_name:tag #定义使用哪一个基础镜像
MAINTAINER user_name # 声明镜像创建者
EVN key value #设置环境变量
RUN command #dockerfile的核心
ADD source_dir/file dest_dir/file #将宿主机的文件拷贝到容器中(自动解压)
COPY source_dir/file dest_dir/file #将宿主机的文件拷贝到容器中(不自动解压)
WORKDIR path_dir #设置工作目录
利用dockerfile创建jdk1.8镜像
准备工作
- 准备工作创建一个目录,
- 将jdk1.8的安装包放入该目录
- 在该目录下创建Dockerfile文件
编写Dockerfile
快速拷贝
FROM centos:7
MAINTAINER xingyanming
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u121-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_121
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$PATH
详情解析
FROM centos:7 #来自哪个基础镜像
MAINTAINER xingyanming #镜像的创建者
WORKDIR /usr #设置工作目录
RUN mkdir /usr/local/java #运行的命令
ADD jdk-8u121-linux-x64.tar.gz /usr/local/java #拷贝并且解压
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_121 #配置环境
ENV JRE_HOME=$JAVA_HOME/jre #配置环境
ENV CLASSPATH=$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH #配置环境
ENV PATH=$JAVA_HOME/bin:$PATH #配置环境
构建服务
# -t 设置镜像的名称 最后的点表示dockerfile文件所在的目录
docker build -t='jdk1.8' .
服务构建的最终结果。