Docker 安装配置 【一】

一.安装

1.配置宿主机网卡转发

## 若未配置,需要执行如下
$ cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
$ sysctl -p /etc/sysctl.d/docker.conf

注意可能会出现下面错误:

[root@localhost ~]# sysctl -p
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory

解决方法:
[root@localhost ~]# modprobe br_netfilter

2.Yum安装配置docker

## 下载阿里源repo文件
$ curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

$ yum clean all && yum makecache
## yum安装
$ yum install docker-ce -y
## 查看源中可用版本
$ yum list docker-ce --showduplicates | sort -r
## 安装指定版本
##yum install -y docker-ce-18.09.9

## 配置源加速
## https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://sto5bfda.mirror.aliyuncs.com"
]
}

## 设置开机自启
systemctl enable docker
systemctl daemon-reload

## 启动docker
systemctl start docker

## 查看docker信息
docker info

## docker-client
which docker
## docker daemon
ps aux |grep docker
## containerd
ps aux|grep containerd
systemctl status containerd

主要的工作要点

 

 

三大核心要素:镜像(Image)、容器(Container)、仓库(Registry)

镜像(Image)

打包了业务代码及运行环境的包,是静态的文件,不能直接对外提供服务。

容器(Container)

镜像的运行时,可以对外提供服务。

仓库(Registry)

存放镜像的地方

  • 公有仓库,Docker Hub,阿里,网易...

  • 私有仓库,企业内部搭建

    • Docker Registry,Docker官方提供的镜像仓库存储服务

    • Harbor, 是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能

  • 镜像访问地址形式 registry.devops.com/demo/hello:latest,若没有前面的url地址,则默认寻找Docker Hub中的镜像,若没有tag标签,则使用latest作为标签。 比如,docker pull nginx,会被解析成docker.io/library/nginx:latest

  • 公有的仓库中,一般存在这么几类镜像

    • 操作系统基础镜像(centos,ubuntu,suse,alpine)

    • 中间件(nginx,redis,mysql,tomcat)

    • 语言编译环境(python,java,golang)

    • 业务镜像(django-demo...)

容器和仓库不会直接交互,都是以镜像为载体来操作。

1.查看镜像列表

   $ docker images

2.如何获取镜像

①从远程仓库拉取

$ docker pull nginx:alpine
$ docker images

②本地构建

 $ docker build . -t my-nginx:ubuntu -f Dockerfile

3.如何通过镜像启动容器

$ docker run --name my-nginx-alpine -d nginx:alpine

4.如何知道容器内部运行了什么程序?

# 进入容器内部,分配一个tty终端
$ docker exec -ti my-nginx-alpine /bin/sh
# ps aux

5.docker怎么知道容器启动后该执行什么命令?

通过docker build来模拟构建一个nginx的镜像

    • 创建Dockerfile

      # 告诉docker使用哪个基础镜像作为模板,后续命令都以这个镜像为基础 
      FROM ubuntu

      # RUN命令会在上面指定的镜像里执行命令
      RUN apt-get update && apt install -y nginx

      #告诉docker,启动容器时执行如下命令
      CMD ["/usr/sbin/nginx", "-g","daemon off;"]
    • 构建本地镜像

      $ docker build . -t my-nginx:ubuntu -f Dockerfile
    • 使用新镜像启动容器

      $ docker run --name my-nginx-ubuntu -d my-nginx:ubuntu
    • 进入容器查看进程

      $ docker exec -ti my-nginx-ubuntu /bin/sh
      # ps aux

 

 

 

posted @ 2020-09-20 18:12  bigeyestudy  阅读(245)  评论(0编辑  收藏  举报