安装docker
uname -a root账户登录,查看内核版本如下
yum update 更新yum库
yum install -y yum-utils device-mapper-persistent-data lvm2 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo(从网页找) 设置yum源
yum list docker-ce --showduplicates | sort -r 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum install docker-ce-17.12.1.ce 安装Docker,命令:yum install docker-ce-版本号
systemctl start docker 启动Docker,命令:systemctl start docker
systemctl enable docker 设置开机自启
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root
权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0 $ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
$ sudo systemctl start docker $ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
二、问题
1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:
Transaction check error: file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
2、卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
3、再次安装docker
$ sudo yum install docker-ce
⚠️:国外镜像一般很难访问,建议配置阿里云镜像。yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.常用命令:
docker images 获取镜像
docker pull 拉取镜像
docker search 查找镜像
docker rmi 删除镜像(跟镜像id)
docker rmi `docker images -q` 删除所有镜像
docker run -it --name=取名 跟镜像 /bin/bash 已交互式方式启动镜像 exit 退出
docker run -di --name=取名 跟镜像 以守护式方式启动(后台启动)
docker exec -it 取的名称 /bin/bash 进入守护式进程
docker ps 查看镜像
docker ps -a 查看所有镜像
docker start 启动镜像
docker stop 停止镜像
docker cp 文件 容器:/路径 cp文件到容器里
docker run -di --name=取名 -v 文件目录:目标目录 跟镜像 与镜像目录创建映射关系
docker inspect 容器 查看容器的所有参数
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos1 精确查找容器ip
docker rm 移除容器
docker run -di --name=mysql5.7 -p 端口映射 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
docker run -di --name=tomcat7 -p 端口映射 9000:8080 -v 目录挂载 /usr/local/webapps:/usr/local/tomcat/webapps tomcat 直接拖动war包到书主机webapps目录启动
docker run -di --name=myredis -p 6379:6379 redis 连接redis
docker commit 容器名 镜像名 将容器保存为镜像
docker save -o mynginx.tar 镜像名 copy镜像到文件
docker load -i mynginx.tar 加载copy的镜像文件
3.Dockerfile构建镜像
例:构建jdk1.8
1.先上传tar.gz包到服务器
2.新建Dockerfile文件编写以下内容
FROM centos:7 环境
MAINTAINER itcast 作者
WORKDIR /usr
RUN mkdir /usr/local/java 指令
ADD jdk-8u131-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_131
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
3.运行命令
docker build -t='jdk1.8' . -t="跟要创建的镜像名称" 后面是Dockerfile文件路径
4.Docker私有仓库搭建
docker pull registry 拉取镜像
docker run -di --name=registry -p 5000:5000 registry 测试安装通过输入网址:http://192.168.124.100:5000/v2/_catalog
docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json
一般情况,配置文件 daemon.json中配置的项目参数,在启动参数中同样适用,有些可能不一样(具体可以查看官方文档),但需要注意的一点,配置文件中如果已经有某个配置项,则无 法在启动参数中增加,会出现冲突的错误。
如果在daemon.json文件中进行配置,需要docker版本高于1.12.6(在这个版本上不生效,1.13.1以上是生效的)
参数 daemon.json文件可配置的参数表,我们在配置的过程中,只需要设置我们需要的参数即可,不必全部写出来。详细参考官网。
官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#/configuration-reloading。
官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#options
官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#/linux-configuration-file
方法1:
1.默认没有文件,所以我们需要先创建,进入/etc/docker目录下,记得创建的文件所有者是root(vim或touch,记得chown修改所有者)
-rw-r--r-- 1 root root 71 Dec 19 17:25daemon.json
2.在文档中配置想要添加的参数:如,镜像加速器网站,私库网站
# cat /etc/docker/daemon.json
{
"registry-mirrors":["https://d8b3zdiw.mirror.aliyuncs.com"],
"insecure-registries": ["https://ower.site.com"],
}
3.创建并修改完daemon.json文件后,需要让这个文件生效
sudo systemctl daemon-reload
sudo systemctl restart docker.service
sudo systemctl status docker -l
d.查看服务
sudo docker info
-------------------------------------
方法2:出现https
docker 的私服配置文件位置在?/usr/lib/systemd/system/docker.service
1.编辑修改docker.service文件,在service ExecStart中增加新的私服地址:--insecure-registry=IP:port(默认5000,根据docker服务器具体信息配置)
给镜像打标签
docker tag 镜像名 私服网址/镜像名 例 docker tag jdk1.8 192.168.124.100:5000/jdk1.8
docker push 192.168.124.100:5000/jdk1.8 上传镜像到私服