centos7安装docker


1.什么是 Dcoker

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库(Repository)类似 Git 的远程仓库,集中存放镜像文件。

2.修改 yum 源

1、下载 wget

yum install wget -y

2、创建目录

mkdir -p  /etc/yum.repos.d

3、下载阿里云 yum 源配置

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

4、更新缓存

yum clean all yum makecache

3.安装 docker

1、安装前置条件

docker 要求 Linux 内核要 3.1.0 以上版本,如果 centos6.x 内核是 2.x,需要升级 linux 内核

uname -r  #查看内核版本
yum update #内核版本低于3.10,使用yum update更新到最新

2、安装步骤

1)升级本地 yum 包

yum update

2) 安装工具集

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

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

3)设置 docker 阿里云源

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4)更新 yum 缓存

yum makecache fast yum clean  all

5)安装 docker

//安装最新稳定版本
yum -y install docker-ce

//安装指定稳定版本
yum list docker-ce --showduplicates | sort -r  #查看所有仓库中所有docker版本

yum install docker-ce-version   #例如sudo yum install docker-ce-18.03.0.ce

6)卸载 docker

sudo yum remove docker

7)查看 docker 版本

docker -v

8)启动 docker 服务并加入开机启动


1> systemctl start docker                   //启动docker
2> systemctl enable docker.service //设置开机自启
3>sudo systemctl daemon-reload //守护进程重启
4>docker的启动停止命令
  //启动docker
   systemctl start docker

  //关闭docker
   systemctl stop docker

  //启动 docker 服务
  service docker start

  //重启docker服务
  service docker restart

  //关闭docker服务
  service docker stop

9)docker 设置镜像(未设置镜像)

docker pull 很慢解决办法,经常拉取镜像的时候很慢或者拉不下来,这里可以使用阿里云镜像加速器,然后试试看有没有效果

##使用阿里云镜像加速器
[root@localhost ~]# mkdir -p /etc/docker

[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
EOF

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

4.docker 的基本操作

1>常用命令

##

image.png

2>镜像仓库

Docker Hub 镜像仓库

//检索镜像
docker search 关键字

//拉取镜像
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

3>镜像

a>镜像管理

//列出镜像
docker image ls
docker images

//删除指定镜像
docker rmi <镜像Id>

//将镜像保存为归档文件
docker save

//导入镜像
docker load

b>镜像构建

 docker build

c>镜像运行

镜像运行,就是新建并运行一个容器。

 docker run [镜像ID]

4>容器

a>.容器生命周期

  • 启动:启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。
  • 启动容器
 #新建并启动
 docker run [镜像名/镜像ID]

#启动已终止容器
 docker start [容器ID]
  • 查看容器
 # 列出本机运行的容器
 docker ps

 # 列出本机所有的容器(包括停止和运行)
 docker ps -a
  • 停止容器
 # 停止运行的容器
 docker stop [容器ID]

 # 杀死容器进程
 docker kill [容器ID]
  • 重启容器
 docker restart [容器ID]
  • 删除容器
docker rm [容器ID]

5>创建容器并运行

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo
  1. -it:开启输入功能并连接伪终端
  2. -d:后台运行容器
  3. –name:为容器指定一个名称
  4. -p:端口映射,格式为主机(宿主)端口:容器端口,可在 application.yaml 配置。
  5. -v:工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
  6. –restart:建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。

###

6>docker 内部容器自动重启配置

1.创建容器时没有添加参数 –restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动。

docker ps -a

docker container update --restart=always [容器名字]
操作实例如下:
[root@localhost mnt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
46cdfc60b7a6        nginx               "nginx -g 'daemon ..."   About a minute ago   Up 42 seconds       80/tcp              n3
79d55a734c26        nginx               "nginx -g 'daemon ..."   About a minute ago   Up 42 seconds       80/tcp              n2
f7b2206c019d        nginx               "nginx -g 'daemon ..."   About a minute ago   Up 46 seconds       80/tcp              n1
[root@localhost mnt]# docker container update --restart=always n1
n1
[root@localhost mnt]# systemctl restart docker
[root@localhost mnt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
46cdfc60b7a6        nginx               "nginx -g 'daemon ..."   2 minutes ago       Exited (0) 5 seconds ago                       n3
79d55a734c26        nginx               "nginx -g 'daemon ..."   2 minutes ago       Exited (0) 5 seconds ago                       n2
f7b2206c019d        nginx               "nginx -g 'daemon ..."   2 minutes ago       Up 2 seconds               80/tcp              n1

2.docker-compose 关机或者重启 docker 同时重启容器 restart always 的配置
存粹使用 docker 启动的话需要加–restart=always 即可实现这个功能,而使用 docker-compose 的话在相关服务配置下加 restart: always 就行。

version: '2'
services:
  database:
    build: ./mysql/
    command: mysqld --user=root --verbose
    restart: always
    environment:
      MYSQL_DATABASE: "web_level3_sqli"
      MYSQL_USER: "web_level3_sqli"
      MYSQL_PASSWORD: "thisisasecurepassword123"
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  web:
    build: ./www/
    restart: always
    ports:
     - "12000:80"
    volumes:
      - ./www/src:/var/www/html
    links:
      - database

文章作者:   leader755
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 leader755 !
评论
 上一篇
企业微信H5开启调试模式 企业微信H5开启调试模式
背景:在企业微信开发,如果不能在企业微信直接调试,那效率非常低,问题又不容易定位到,企业微信设置里又没有开发者模式开关,就在我无从下手的时候,发现一个快捷键能打开调试模式 企业微信 Windows 版本调试 把 devtools_res
2022-04-26
下一篇 
docker安装 jenkins docker安装 jenkins
准备条件 基于 docker 进行安装软件,首先需要有 docker 环境,centos7 搭建 docker 教程。 1.下载 jenkins 镜像 docker 下载 jenkins 镜像 指定版本 ,因为低版本的后面安装软件会失败。
2022-03-30
  目录