Docker系列(3-应用篇) linux 安装 Docker

一、软版本

操作系统:Centos 7.0

docker的官网 : https://www.docker.com/community-edition#/download

镜像中心:https://hub.docker.com/

高速下载地址:http://get.daocloud.io/

 

二、开始安装:

http://www.daocloud.io/

由于国内的源比较卡,所以我们推荐使用daocloud方式,注册安装即可:

[root@test ~]# curl -sSL https://get.daocloud.io/docker | sh

#为了快速拉取镜像,还要daocloud.因为在国内通常拉取Docker hub的镜像都是被墙的。

 [root@test ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://681a96df.m.daocloud.io

 

响应:

docker version >= 1.12

{"registry-mirrors": ["http://681a96df.m.daocloud.io"],

    "live-restore": true

}

Success.

You need to restart docker to take effect: sudo systemctl restart docker

##实际上是相关配置写入了,

[root@test ~]# cat /etc/docker/daemon.json

{"registry-mirrors": ["http://681a96df.m.daocloud.io"],

    "live-restore": true

}

##指定去这个仓库下,因为默认是去官方的Docker hub下载镜像的。

然后重启docker:

[root@test ~]# systemctl restart docker

 

修改配置文件

[root@test ~]# vim /lib/systemd/system/docker.service

#原:ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

改为:ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375  ##tcp

修改后要重加载docker

[root@test ~]# systemctl daemon-reload

[root@test ~]# systemctl restart docker

2、我们也可以看一下到底docker 读取的是哪个配置文件,不同版本可能不一样:

 [root@test ~]# systemctl status docker

● docker.service - Docker Application Container Engine

   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)

   Active: active (running) since Sat 2017-03-11 16:43:51 CST; 1min 11s ago

     Docs: https://docs.docker.com

###这里我们知道centos读取的是/usr/lib/systemd/system/docker.service这个文件。启动的相关参数,后面再慢慢开始

 

Tcp:

Vim /usr/lib/systemd/system/docker.service

 

[root@master ~]# docker -H 192.168.63.200:2375 images

如果跨机访问不到,需要关闭防火墙

彻底关闭防火墙:

[root@test ~]# sudo systemctl status firewalld.service

[root@test ~]# sudo systemctl stop firewalld.service          

[root@test ~]# sudo systemctl disable firewalld.service

三、运行docker版的hello world

要运行docker版本的hello world,那么自然需要先获取镜像,注意到docker官方给我们提供了一个镜像中心:https://hub.docker.com/,一般公司内部也会给我们提供一个公司专用的镜像中心。

docker pull : 从镜像仓库中拉取或者更新指定镜像,镜像除了名称之外,还有一个tag的概念,如果不提供tag,就是表示latest。

docker images : 列出本地镜像。

 

 

不可不知的docker网络

在实际开发中,要知道我们的服务,一般是在某个端口进行监听,一直在后台运行的,那么就涉及到宿主机/宿主机中的容器它们之间的网络问题了。

docker的网络类型分3种:bridge,host,none。(这里和vmware的网络设置部分非常相似)

bridge,就是桥接模式,docker容器会有自己独立的network namespace,也就是会有虚拟的ip和port,那么如何通过宿主机来访问容器内部的端口呢?这里就涉及到一个技术:端口映射了。

host,不会分配独立的network namespace,而是和宿主机进行共用网络。

none,不使用网络,docker容器不会和外界进行通讯。


猜你喜欢

转载自blog.csdn.net/qq_31024823/article/details/84872038