Centos7上安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

 一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

 $ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

$ sudo yum remove docker  docker-common docker-selinux docker-engine

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

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

5、设置yum源

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

 

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

7、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

 

8、启动并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

 

 二、问题

1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:

 

Transaction check error:
  file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

 

2、卸载旧版本的包

$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安装docker

$ sudo yum install docker-ce

Docker 国内镜像的配置及使用

 三、docker国内镜像的配置和使用

1、注册并登陆阿里云开发者平台,阿里云 - 开发者平台:https://dev.aliyun.com/

2、注册登陆之后,点击 “创建我的容器镜像” ,然后就会来到阿里云的服务面板,点击 “镜像加速器”。(根据提示输入Docker登录时需要使用的密码(后期可更改),用户名就是登录阿里云的用户名。)

在出现的页面中,可以得到一个专属的镜像加速地址,类似于“https://1234abcd.mirror.aliyuncs.com”。
根据页面中的“操作文档”信息,配置自己的Docker加速器。

 3、针对Docker客户端版本大于1.10.0的用户,可以通过修改daemon配置文件 /etc/docker/daemon.json 来使用加速器

 sudo tee /etc/docker/daemon.json <<-'EOF'
  {
    "registry-mirrors": ["https://123456abcd.mirror.aliyuncs.com"]
  }
  EOF

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

4、重启docker daemon

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

 

 

docker 运行nginx并进入容器内部、端口映射

四、docker运行容器

1、从网易蜂巢镜像仓库下载nginx镜像 ;

2、拉取镜像到本地,并查看本地的镜像:

$ docker pull hub.c.163.com/library/node:latest
$ docker images

3、运行容器

命令格式:

docker run [option] IMAGE [COMMOND] [ARG...] 

例如:

docker run -d --name nginx1.0 hub.c.163.com/library/nginx    # -d: 后台启动容器; --name:容器的别名,默认为随机的

容器的操作:

 

docker ps         # 查看正在运行的容器
docker ps -a      # 查看所有容器
docker ps -l      # 查看最近一次运行的容器

docker create 容器名或者容器ID    # 创建容器
docker start [-i] 容器名        # 启动容器
docker run 容器名或者容器ID       # 运行容器,相当于docker create + docker start
docker attach 容器名或者容器ID bash     # 进入容器的命令行(退出容器后容器会停止)
docker exec -it 容器名或者容器ID bash   # 进入容器的命令行
docker stop 容器名                    # 停止容器
docker rm 容器名                      # 删除容器

docker top 容器名                    # 查看WEB应用程序容器的进程
docker inspect 容器名                # 查看Docker的底层信息

4、进入容器内部:

$ docker exec -it nginx1.0 bash

 

 五、docker 网络

linux使用namespace来进行资源的隔离 ,docker的隔离性;

1、docker的网路类型分为:

Bridge模式:桥接(默认的模式)

host模式:容器将不会获得独立的network namespace,将和主机公用一个;即在docker中使用网络和主机上一样的;

None:不与外界任何东西进行通讯

2、采用Bridge的时候需要和主机通讯,就需要使用端口映射

 

3、端口映射

$ docker run -d --name nginx1.1 -p 8080:80 hub.c.163.com/library/nginx  # 主机的8080端口映射到容器中的80端口

 

分类: docker

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐