博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

lunix 下安装docker与镜像

Posted on 2020-06-18 19:04  shyHorse  阅读(243)  评论(0编辑  收藏  举报

lunix 安装docker镜像

准备contos7

Docker安装

1、检查yum源 (此步骤可省略,一般contos7都会有),centos7yum源自带docker

cd   /etc/yum.repos.d | ls

 

2、查看yum上的docker版本

yum list docker

 

3、选择并安装docker某个版本

yum install docker.x86_64

 

4、安装好查看安装版本

docker --version

 

查看docker是否安装成功

yum list installed |grep docker

 

5、启动docker

systemctl start docker

(可根据实际情况选择性的设置开机自启

systemctl enable docker.service

 

6、查看docker服务状态

systemctl status docker

 

 

镜像安装

 

1、拉取镜像仓库

docker  pull registry

 

2、查看所有镜像(此步骤也可以跳过)

docker images

 

3、在主机上新建一个目录

我建的位置是在 usr/local/下 文件夹名:docker_registry

创建文件夹命令:mkdir  docker_registry

 

4、启动镜像

docker run -d -p 5000:5000 --name=dockerRegistry --restart=always --privileged=true  -v /usr/local/docker_registry:/var/lib/registry  registry

 

解释:

-d 是后台启动容器。

-p 将容器的 5000 端口映射到 Host 5000 端口。5000 registry 服务端口。

--name=dockerRegistry  运行的容器名称

--restart=always 自动重启

--privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限

-v /usr/local/docker_registry:/var/lib/registry 把主机的/usr/local/docker_registry 目录挂载到registry容器的/var/lib/registry目录下

registry  镜像名称

 

5、从公有仓库拉去一个nginx镜像下来测试

  

  需要安装什么镜像,可以选择先查询所有版本,在选择其中一个
  docker search 镜像名
  例如:docker search redis

 

 

docker pull nginx

 

6、查看镜像 docker images

 

7、修改配置文件 /etc/docker/daemon.json

第一次建可能此文件里面空的

注意:文中192.168.1.21 替换为你连的lunix的ip

正确的配置例子

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://registry.docker-cn.com"],(# 此处逗号一定的有)

"insecure-registries":["192.168.1.21:5000"]

 

"registry-mirrors"可选地址:

Docker中国区官方镜像

(不推荐,国家把docker国外镜像hub封掉了,导致镜像pull不下来)

https://registry.docker-cn.com

网易

http://hub-mirror.c.163.com

 

中国科技大学(推荐)

https://docker.mirrors.ustc.edu.cn

 

阿里云容器  服务

https://cr.console.aliyun.com/

 

Daocloud

http://141e5461.m.daocloud.io/

 

8、新建tag

docker tag 镜像名:版本 主机ip/新的镜像名:版本

例:docker tag nginx  192.168.1.21:5000/nginx

此处暴露ip不方便,可以在/etc/hosts 中修改,如下

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1 docker-registry

 

 

9、推送到本地仓库

docker  push  ip:5000/nginx

 

10、去之前新建的仓库查看是否已经有nginx,如果有就表示成功,

cd  /usr/local/docker_registry/docker/registry/v2/repositories

此处也可以用命令的方式查看本地仓库中的镜像

curl  -X  GET http://127.0.0.1:5000/v2/_catalog

查看仓库中某个镜像版本

curl  -X  GET http://127.0.0.1:5000/v2/镜像名/tags/list

 

11、此处做一个测试,删除刚才的tag镜像,在重新pull,会成功拉取到刚才的镜像

docker rmi 192.168.1.21:5000/nginx  删除

docker rmi nginx  删除

docker images 查询,此时192.168.1.21:5000/nginx 和 nginx 都已被删除

 

 重新拉取

docker pull 192.168.1.21:5000/nginx

docker images 查询,此时192.168.1.21:5000/nginx 又可以查到了

 

安装上传下载文件软件 yum install lrzsz -y
命令: 上传(rz)和下载(sz)

 

安装redis:

1、docker search redis 查看镜像版本

2、docker pull redis 不加版本号默认最新的

3、docker images 查看本地镜像redis是否存在了

4、在/usr/local/docker_registry/docker下创建文件夹redis
  创建redis: mkdir redis
  然后在redis下创建data和文件redis.conf
  建data: mkdir data
  redis.conf文件可以下载下来再用vim命令编辑粘贴进去,也可以直接从官网下载
  我选择直接下载,wget http://download.redis.io/redis-stable/redis.conf -o redis.conf
  (注意:此时我在文件夹redis下,所以直接可用上面的命令,如果不在此文件夹下,需要在wegt后面加 -P /usr/local/docker_registry/docker/redis
  即完整命令为 wegt/usr/local/docker_registry/docker/redis http://download.redis.io/redis-stable/redis.conf -o redis.conf)

  还有一个注意,如果报错:-bash: wget: command not found ,表示没有安装wget软件包,一般linux最小化安装时,wget不会默认被安装。
  解决: yum安装 yum -y install wget (先把wget安装上在执行上面的下载文件redis.conf的命令)

  文件redis.conf下载到redis后,需要vim编辑;我做了如下几个修改
  #注释掉这部分 bind 127.0.0.1 ,这是限制redis只能本地访问
  #默认yes protected-mode no ,开启保护模式,限制为本地访问
  #默认no,改为yes意为以守护进程方式启动 daemonize no,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
  #redis持久化 appendonly yes
  最后保存退出。

5、创建并启动redis

docker run -p 6379:6379 --name redis -v /usr/local/docker_registry/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_registry/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes


6、查看运行的容器,此时会有redis
docker ps

7、测试
先执行:docker exec -it redis /bin/bash
然后: redis-cli

接下来就可以正常操作redis命令了

 

 

安装JDK

yum -y install java-1.8.0-openjdk*
配置环境变量 打开 vim /etc/profile添加一下内容

推荐自己去官网下载一个jdk,文件传输过来,解压后配置

export JAVA_HOME=/usr/local/JDK8/jdk1.8.0_202
export CLASSPATH=${JAVA_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin


修改完成之后,使其生效

source /etc/profile
输入java -version 返回版本信息则安装正常。

 

 

安装dockers过程可能会出现一些问题,此处记录下

报错1Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

解决①:

检查/etc/docker/daemon.json文件,文件改完要重启docker

(重启命令: systemctl restart docker 

 

解决②:

如果解决①没效果,可以试试这个

1、卸载docker,重新安装

  1) 查询安装过的包 yum list installed | grep docker

  2) 删除安装过的包

  yum -y remove docker.x86_64

  yum -y remove docker-client.x86_64

   yum -y remove docker-common.x86_64

 

2、更新yum为最新

  sudo yum update

 

3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

  sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 

4、设置yum
  sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

5、查看仓库中docker版本

   yum list docker-ce --showduplicates | sort -r

6、安装docker

   sudo yum install docker-ce

7、启动Docker,设置开机启动,停止Docker

   sudo systemctl start docker

    sudo systemctl enable docker

    sudo systemctl stop docker(此处不用此命令,前两个命令就可以)   

8、查看版本

    docker version

 

 

报错2

docker: Error response from daemon: Conflict. The container name "/dockerRegistry" is already in use by container "fac69bfaf99ae6e677c498705231e2dd2ebda326de3cc991cba4acb67705fddd". You have to remove (or rename) that container to be able to reuse that name.See 'docker run --help'.

解决:错误原因是dockerRegistry已在容器中存在了

命令:

1)查看有什么在运行  docker ps -l  

2)删除 docker rm 09f5b868c5a5

3)再次执行docker run -d -p 5000:5000 --name=dockerRegistry --restart=always --privileged=true  -v /usr/local/docker_registry:/var/lib/registry  docker.io/registry 

 

 

 

参考:https://www.jianshu.com/p/8f38f198724e
安装gitlab镜像参考:https://www.jianshu.com/p/080a962c35b6        https://www.cnblogs.com/zuxing/articles/9329152.html