当前位置:   article > 正文

CentOS7下docker安装+基本操作_centos7安装docker

centos7安装docker

一、Docker 安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看此前提条件来验证你的 CentOS 版本是否支持 Docker 。 需要安装 64位CentOS7.x 以上的版本。

1、查看当前系统的内核版本是否高于 3.10

  1. [root@docker-1 ~]# uname -r
  2. 3.10.0-693.el7.x86_64

2、 安装 Docker 服务 

 卸载旧版本:(如果安装过旧版本的话) 

yum remove docker docker-common docker-selinux docker-engine

安装所需的软件包 

yum-utils 提供了 yum-config-manager 实用程序,并且 devicemapper 存储驱动需要device-mapperpersistent-data 和 lvm2

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

 设置Docker的镜像仓库(阿里)

  1. yum-config-manager \
  2. --add-repo \
  3. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装最新版本的 Docker CE

yum -y install docker-ce

二、卸载 Docker 服务 

1. 卸载 Docker 软件包 

yum remove docker-ce

2. 删除镜像/容器等

rm -rf /var/lib/docker

三、启动与停止Docker服务 

  1. systemctl 命令是系统服务管理器指令,它是service 和 chkconfig 两个命令组合。
  2. 启动docker:systemctl start docker
  3. 停止docker:systemctl stop docker
  4. 重启docker:systemctl restart docker
  5. 查看docker状态:systemctl status docker
  6. 开机自动启动docker:systemctl enable docker

四、 镜像操作

 1、查看镜像列表

  1. #列出已安装的所有镜像
  2. docker images
  3. #只显示镜像ID
  4. docker images -q

这些镜像都是存储在Docker宿主机的 /var/lib/docker 目录下 

2、拉取镜像

如果拉取失败,则配置国内镜像加速器(阿里):docker配置国内镜像加速器_毛豆有毛没豆的博客-CSDN博客_docker配置国内加速器

  1. #不配置版本号,则默认拉取最新版本
  2. docker pull 镜像名:版本号
  3. docker pull mysql:5.7

3、删除镜像

  1. #删除某一个镜像
  2. docker rmi -f 镜像ID
  3. #删除所有镜像 (是 `` 反单引号 )
  4. docker rmi -f `docker images -q`
  5. 其中 docker images -q 获取所有镜像id

4、导出镜像

  1. ## docker本地目录
  2. cd /var/lib/docker
  3. ## 导出镜像
  4. docker save 镜像名称:镜像版本 -o 自定义镜像名称.tar

5、重命名镜像源名称

docker tag 镜像ID 自定义镜像源别名:自定义的镜像版本

6、镜像提交

  1. ## 登入docker Hub账号
  2. docker login
  3. ##推送镜像
  4. docker push 镜像源名称:tag
  5. ## 登出docker Hub账号
  6. docker logout

7、镜像构建

五、容器操作

1、查看容器

  1. #查看正在运行的隆起
  2. docker ps 
  3. #查看所有隆起
  4. docker ps -a
  5. #查看最后一次运行的容器
  6. docker ps -l
  7. #查看停止的容器
  8. docker ps -f status=exited
CONTAINER IDIMAGE COMMAND CREATEDSTATUS PORTS NAMES
容器 ID镜像初始命令创建日期 容器状态端口号容器名字

2、创建容器

注意:必须先有镜像,再有容器

docker pull mysql:5.7

创建容器命令:

docker run [OPTIONS] 镜像名:标签名


创建容器 [OPTIONS] 常用的参数说明:

-i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与-t 同时使用 。

-t 启动后会进入其容器命令行, 通常与 -i 同时使用; 加入 -it 两个参数后,容器创建就能登录进去。即 分配一个伪终端。

--name 为创建的容器指定一个名称 。

-d 创建一个守护式容器在后台运行,并返回容器ID; 这样创建容器后不会自动登录容器,如果加-i参数,创建后就会运行容器。

-v 表示目录映射, 格式为:-p 宿主机目录:容器目录 注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-p 表示端口映射,格式为:-p 宿主机端口:容器端

创建容器,例子:

1、交互式容器     

     说明: 就是创建容器后,马上会启动容器,并进入容器

     docker run -it --name=mysqlMaster mysql:5.7 /bin/bash

     (1)退出容器:exit   ,此时容器为退出停止状态

     (2)退出,但不停止容器:按键盘:Ctrl + p + q ,按一次一行,则多按几次,一般是连两次即可。

2、守护式容器 

      说明:后台运行的容器

     docker run -id --name=mysqlSalve mysql:5.7 /bin/bash

3、例如

docker run -d --name=registry --restart=always --privileged=true -p 5000:5000 -v /registry:/var/lib/registry registry:latest

说明:--restart=always  挂掉自动重启

           --privileged=true  避免centos7下,系统的一些权限未对docker开放

3、启动/停止容器

 

启动已运行过的容器:
       docker start 容器名称|容器id
       如:docker start mysqlMaster

停止正在运行的容器(正常停止):

       docker stop 容器名称|容器id
       如:docker stop mysqlMaster

4、登入容器

docker exec -it 容器名称|容器id /bin/bash

如:docker exec -it mysqlMaster /bin/bash

5、删除容器

docker rm 容器名称 | 容器ID

例:docker rm mysqlMaster
注意,只能删除停止的容器

6、查看容器IP

  1. # 查看容器所有状态信息
  2. docker inspect 容器名称/容器ID
  3. # 查看 容器ip 地址
  4. docker inspect 容器名称/容器ID --format='{{.NetworkSettings.IPAddress}}'
  5. # 容器运行状态
  6. docker inspect 容器名称/容器ID --format '{{.Name}} {{.State.Running}}'
7、查看容器运行日志
docker logs 容器名称/容器ID

8、查看容器内的进程信息

docker top 容器名称/容器ID

9、实时监控容器资源使用情况

docker stats 容器ID

六、拷贝宿主机与容器中的文件


1、将宿主机文件拷贝到容器内

语法:

docker cp 要拷贝的宿主机文件或目录  容器名称:容器文件或目录

docker cp /root/testCopy.txt wnd_tomcat8:/opt/

2、从容器内文件拷贝到宿主机

语法:

docker cp 容器名称:要拷贝的容器文件或目录 宿主机文件或目录 

docker cp wnd_tomcat8:/opt/testCopy.txt /root

七、数据目录挂载

docker run -id --name=wnd_tomcat8 -p 8888:8080 -v /usr/local/project:/usr/local/tomcat/webapps --privileged=true tomcat:8 /bin/bash

-p 表示地址映射, 宿主机端口号:容器运行端口号

-v 表示地址映射, 宿主机目录:容器映射目录

--privileged=true 如果映射的是多级目录,防止有可能会出现没有权限的问题,所以加上此参数

八、备份与迁移

1、容器保存为镜像

语法:

        docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]

(1)、无目录挂载-容器保存为镜像 

             查看镜像是否有挂载目录:docker inspect --format='{{.Mounts}}' 容器名
             例: docker commit -m=“mysql一主一从” -a="maodou" mysql-master mysql-master:1.1

                     docker commit -m=“mysql一主一从” -a="maodou" mysql-slave mysql-slave:1.1

(2)、有目录挂载-容器保存为镜像

            问题: 如果Docker对容器挂载了数据目录, 在将容器保存为镜像时,数据不会被保存到镜像中。

            原因:因为宿主机与容器做了路径映射,再commit一个新的镜像时,该路径下的所有数据都会被抛弃,不会 被保存到新镜像中。可通过 docker inspect --format='{{.Mounts}}' 镜像名 查看是否有目录挂载.

            解决:

                    目录挂载方法。先把在宿主机的数据备份在某个目录下,在 docker run 的时候使用-v参数将宿主机上的 目录映射到容器里的目标路径中(tomcat是 /usr/local/tomcat/webapps ,mysql是var/lib/mysql)

                    拷贝方法。先把在宿主机的数据备份在某个目录下,通过拷贝的方法 docker cp 将备份的数据复制进容 器里的目标路径中(tomcat是 /usr/local/tomcat/webapps ,mysql是var/lib/mysql)。

2、镜像备份

docker save -o mysql-master.1.1.tar mysql-master:1.1

3、镜像恢复

删除镜像:docker rmi mysql-master:1.1

恢复镜像:docker load -i mysql-master.1.1.tar

-i 输入的镜像文件

 九、容器中安装vim

apt-get update,然后执行 apt-get install -y vim

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/327887?site
推荐阅读
相关标签
  

闽ICP备14008679号