CentOS7下docker安装+基本操作

一、Docker 安装

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

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

[root@docker-1 ~]# uname -r
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的镜像仓库(阿里)

yum-config-manager \
     --add-repo \
     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服务 

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

四、 镜像操作

 1、查看镜像列表

#列出已安装的所有镜像
docker images 

#只显示镜像ID
docker images -q

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

2、拉取镜像

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

#不配置版本号,则默认拉取最新版本
docker pull 镜像名:版本号

docker pull mysql:5.7

3、删除镜像

#删除某一个镜像
docker rmi -f 镜像ID

#删除所有镜像 (是 `` 反单引号 )
docker rmi -f `docker images -q`

其中 docker images -q 获取所有镜像id 

4、导出镜像

## docker本地目录
cd /var/lib/docker

## 导出镜像
docker save 镜像名称:镜像版本 -o 自定义镜像名称.tar

5、重命名镜像源名称

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

6、镜像提交

## 登入docker Hub账号
docker login 

##推送镜像
docker push 镜像源名称:tag

## 登出docker Hub账号
docker logout

7、镜像构建

五、容器操作

1、查看容器

#查看正在运行的隆起
docker ps 

#查看所有隆起
docker ps -a

#查看最后一次运行的容器
docker ps -l

#查看停止的容器
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

# 查看容器所有状态信息
docker inspect 容器名称/容器ID

# 查看 容器ip 地址
docker inspect 容器名称/容器ID --format='{{.NetworkSettings.IPAddress}}'

# 容器运行状态
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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值