docker、docker-compose环境安装及使用示例

docker安装

  1. 安装Docker的依赖库。

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  2. 添加Docker CE的软件源信息。

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 安装Docker CE。

    yum makecache fast
    yum -y install docker-ce
    
  4. 启动Docker服务。

    systemctl start docker
    

修改镜像源

  1. Docker的默认官方远程仓库是hub.docker.com,由于网络原因,下载一个Docker官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务ACR提供了官方的镜像站点,从而加速官方镜像的下载。下面介绍如何使用阿里云镜像仓库。如果有阿里云账号,可在阿里云子账号登录 容器镜像服务控制台。单击 [镜像中心] > [镜像加速器],可以看到阿里云为您提供了一个专属的镜像加速地址。
2. 配置Docker的自定义镜像仓库地址。
    请将下面命令中的镜像仓库地址`https://kqh8****.mirror.aliyuncs.com`替换为阿里云为您提供的专属镜像加速地址。
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kqh8****.mirror.aliyuncs.com"]
}
EOF
  1. 修改完成后重新加载服务配置文件。
    systemctl daemon-reload
    
  2. 重启Docker服务。
    systemctl restart docker
    

第一个docker应用

  • 使用docker搭建nginx
  1. 查看Docker镜像仓库中Nginx的可用版本。

    docker search nginx
    
  2. 拉取最新版的Nginx镜像。

    docker pull nginx:latest
    
  3. 查看本地镜像。

    docker images
    
  4. 运行容器

    docker run --name nginx-test -p 8080:80 -d nginx
    
     命令参数说明:
     	--name nginx-test:容器名称。
     	-p 8080:80: 端口进行映射,将本地8080端口映射到容器内部的80端口。
     	-d nginx: 设置容器在后台一直运行。
    
  5. 在浏览器地址栏输入http://:8080访问Nginx服务。

docker-compose

  1. 安装docker-compose

    sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
    

    网络原因有可能时间较长,推荐一个速度较快地址

    sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
  2. 配置docker-compose

    sudo chmod +x /usr/local/bin/docker-compose
    sudo curl -L https://raw.githubusercontent.com/docker/compose/1.21.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
    
  3. 安装完成

docker-compose --version

第一个docker-compose应用

  1. 创建一个docker-compose.yml文件,里面添加内容,不能用tab键加空格
    version: '3.1'
    services:
     nginx:
       restart: always
       image: nginx
       container_name: nginx
       ports:
         - 80:80
       volumes:
         - ./conf.d:/etc/nginx/conf.d
    
  2. 接着创建一个conf.d文件夹并进入,然后创建一个default.conf文件,在里面添加内容
    server {
    	listen       80;
    	server_name  localhost;
    	
    	location / {
    		root   /usr/share/nginx/html;
    		index  index.html index.htm;
    	}
    }
    
  3. 返回创建的yml文件那一层使用docker-compose命令创建容器
    docker-compose up -d
    
  4. 使用本机输入虚拟机地址即可访问,至此docker-compose已经构建完成

docker使用相关问题

  • 解决docker网络连接问题
  1. 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    
  2. 关闭selinux
    setenforce 0
    vi /etc/sysconfig/selinux
    
    SELINUX=disabled
    
  3. 重启docker
    systemctl restart docker
    
  4. 还需要注意云平台提供的安全组配置,阿里云举例: 控制台 > 云服务器 ECS > 网络与安全 > 安全组 > 选择云主机所在安全组 > 配置规则 > 入方向 > 增加 自定义TCP 端口范围:80 及可以访问;
  • 重启容器报错: Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
    vi ~/.bashrc
    # 在最下面添加一行:
    export DOCKER_HOST='unix:///var/run/docker.sock'
    source .bashrc
    
  • docker-compose: error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
    sudo mount /tmp -o remount,exec
    

你可能感兴趣的:(容器技术,docker,nginx,docker-compose)