一、安装Docker

  我使用的是腾讯云上的centos 7。

  docker -v 查看是否已经安装有docker

  如果有 systemctl stop docker 停止docker服务

  查看当前版本 rpm -qa | grep docker

  卸载 docker

  yum erase docker docker-client  docker-client-latest  docker-common  docker-latest  docker-latest-logrotate  docker-logrotate  docker-selinux docker-engine-selinux  docker-engine docker-ce

  删除一些相关的配置

find /etc/systemd -name '*docker*' -exec rm -f {} \;
find /etc/systemd -name '*docker*' -exec rm -f {} \;
find /lib/systemd -name '*docker*' -exec rm -f {} \;
rm -rf /var/lib/docker #删除以前已有的镜像和容器,非必要
rm -rf /var/run/docker

  接下来就是安装了:

  更新yum源: yum update

  安装工具:yum install -y yum-utils device-mapper-persistent-data lvm2

  添加docker-ce的yum源 : yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo,完成后会在/etc/yum.repo.d/下多了docker-ce.repo

  查看docker-ce 版本:  yum list docker-ce --showduplicates | sort -r

  

  使用命令 yum install docker-ce-version 安装相应版本的docker: yum install -y docker-ce-18.06.3.ce

  查看docker版本:docker version

  

  我安装完运行docker命令的时候提示:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

  解决办法:  

    systemctl daemon-reload
    service docker restart

  查看docker状态

  

  最后可以用 docker run hello-world 测试docker是否正常可用。

  

二、docker镜像加速器配置

  由于国内访问docker官方镜像慢的原因,通常需要配置国内的镜像加速器,我使用的是阿里云的镜像加速器 :

  https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

  具体配置在阿里云的镜像加速器有操作文档,下面是我centos的配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["镜像加速器URL"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、docker 常用命令

  docker --version 查看当前安装docker版本号

  docker info 显示 Docker 系统信息,包括镜像和容器数。。

  docker version 显示 Docker 版本信息

  docker ps 查看当前正在运行的容器

  docker images 查看本地所有的镜像

  docker run 运行一个容器:

    docker run ubuntu:15.10 /bin/echo "Hello world" : /bin/echo "Hello world" 为在启动的容器里执行的命令,ubuntu为镜像名称,15.10位Tag,不指定Tag则默认为latest

    docker run -i -t ubuntu:15.10 /bin/bash : -t 在新容器内指定一个终端,-i 允许对容器内的stdin进行交互

    docker run -p hostport:containerport -d --name containername image : hostport 为宿主机对外的端口号,将containnerport容器中的端口号映射出去被外界访问,-d 为detach,指定后会在后台运行,containnername指定容器名称,image为镜像文件名称

    docker logs ad3b66b77b56:查看容器id 为 ad3b66b77b56 的日志

  docker stop ad3b66b77b56 :停止id为docker stop ad3b66b77b56的容器,id也可以是name

  docker start ad3b66b77b56 :启动容器

  docker rm ad3b66b77b56 : 移除容器

  docker inspect ad3b66b77b56 : 查看底层信息

  docker pull 从镜像仓库拉取镜像到本地

    docker pull ubuntu:15.10

    docker pull httpd

  docker rmi -f fce289e99eb9 删除本地image id 为fce289e99eb9 的镜像

  docker search nginx :查找镜像

  docker exec -it containerId/containerName /bash  进入容器内部

  docker --help 查看命令帮助

四、安装Nginx

  docker pull nginx 从仓库拉取nginx镜像

  docker run --name nginx-test -p 8081:80 -d nginx 使用 NGINX 默认的配置来启动一个 Nginx 容器实例

  

  接着可以在浏览器上访问8081端口

  

  

   部署nginx

  创建本机的nginx目录,www: 目录将映射为 nginx 容器配置的虚拟目录,logs: 目录将映射为 nginx 容器的日志目录。conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

    mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

  将docker容器中的nginx配置文件复制到本地: docker cp bb7cfa275000:/etc/nginx/nginx.conf ~/nginx/conf/

  运行命令

    docker run -d -p 8082:80 --name nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

    •   -p 8082:80: 将容器的 80 端口映射到主机的 8082 端口。

    •   --name runoob-nginx-test-web:将容器命名为 runoob-nginx-test-web。

    •   -v ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

    •   -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

    •   -v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

  最后就可以在我们创建的~/nginx/www目录下创建自己的html文件了。

  

初识 docker的更多相关文章

  1. Docker 学习应用篇之一: 初识Docker

    Docker 自从2013年以来就非常的火热,无论是从github上的代码活跃度,还是Redhat在RHE6.5中集成对Docker的支持,等等.第一次接触Docker,还是老师给我们介绍的. 1.初 ...

  2. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  3. 初识Docker和Windows Server容器

    概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器.它集成了Docker对Windows S ...

  4. docker-1 初识docker

    五分钟认识docker 什么是docker? 把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的.当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(App ...

  5. 初识docker

    什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主 ...

  6. 初识Docker和安装

    什么是Docker Docker的构想是要实现“Build,Ship and Run Any App,Anywhere”,即通过对应用的封装(Packaging).分发(Distribution).部 ...

  7. Docker实战系列一:初识Docker for Windows

    windows下安装Docker官网教程Install Docker for Windows Docker配置官网教程Get started with Docker for Windows

  8. Docker那些事儿之初识Docker

    公司内部一直在使用Docker进行服务的部署和应用的升级,从开始使用Docker一直到线上的部署以及一些基础服务的开发本人都有参与,而且自己的网站也是在Docker的基础之上进行构建的,想想也需要总结 ...

  9. 初识Docker:BusyBox容器后台运行失败

    1.问题描述:我在进行Docker网络实验时,使用docker  run  -d  busybox命令时,busybox无法保持后台长期运行. ============================ ...

随机推荐

  1. python执行ad_hoc

    import shutil from collections import namedtuple from ansible.parsing.dataloader import DataLoader f ...

  2. 023_STM32之PID算法原理及应用

    (O)关于程序BUG说明,看最后面的红色字体,视频和源代码中都没有说明 (一)PID控制算法(P:比例 I:积分 D:微分) (二)首先先说明原理,使用的是数字PID算法,模拟PID算法在计算机这样的 ...

  3. 003_C/C++笔试题_分享大汇总

    (一)感谢:lhzstudio 01_C++经典面试题全集 50~100道 都附带有参考答案 02_C++开发工程师面试题库 100~150道 03_C++笔试题库之编程.问答题 150~200道 0 ...

  4. 007_linuxC++之_构造函数的初级应用

    (一)构造函数:用来在创建对象时初始化对象, 即为对象成员变量赋初始值 (二)构造函数的命名必须和类名完全相同 (三)更对具体的查看:构造函数 (四)直接分析程序 运行结果 解析上面程序: 1. 当程 ...

  5. 7zip使用相关

    造冰箱的大熊猫@cnblogs 2019/11/2 1.仅存储不压缩 7z a -mx0 compressed.7z FileFolderPath 将FileFolderPath指向的文件或文件夹打包 ...

  6. Machine Schedule为什么UVA过了POJ过不了

    UVA1194 POJ1325 POJ要多判一个非零!!! #include<cstdio> #include<vector> #include<cstring> ...

  7. 【ElasticSearch+NetCore 第二篇】Nest封装

    using Elasticsearch.Net; using Nest; using System; using System.Collections.Generic; using System.Li ...

  8. linux 后台 运行

    但是如果终端关闭的话,程序也会终止,那么就要涉及到linux的一个十分强大的命令:screen. 按照我个人的理解,这个命令就是能够在linux中创造出多个终端,在已有的窗口内部再创造更多的窗口,结合 ...

  9. Leetcode题目292.Nim游戏(脑筋急转弯)

    题目描述: 你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个 ...

  10. oracle 常用工具类及函数

    j_param json; jl_keys json_list; -- 创建json对象j_param j_param := json(p_in_str); -- 校验param域是否缺少必填参数 j ...