Docker之初级实战篇(一)--安装Docker

2018-09-19  本文已影响0人  布拉德澈

一、动手前的准备

1、我们的实战环境Centos7,内存建议4G或以上。
2、请自行完成Linux等环境的配置(如虚拟机等)。
3、能顺畅使用百度或百度以外搜索引擎。
4、我们不再赘述Docker是什么,直接进入主题。
5、学习和使用Docker,首先要学会查询官方文档:
https://docs.docker.com/
6、我们选择CE社区版,CE和EE的区别请自行查询。
https://docs.docker.com/engine/installation/linux/docker-ce/centos

安装一些基本依赖软件

进入终端操作,默认是普通用户 ,不要随意使用root。
1、输入下方命令:

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

2、进一步设置即将安装的是稳定版官方仓库(后面可以使参考阿里云帮助使用阿里云仓库):

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

3、这一步是可选的,我们不加(edge月更新仓库, Edge gives you new features every month)

yum-config-manager --enable docker-ce-edge

4、阿里云上的安装帮助文档:
https://yq.aliyun.com/articles/110806?spm=a2c1q.8351553.0.0.11b720beQRyGTx

二、安装

1、安装之前可以查看所有仓库中所有docker版本

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

2、不想选那么默认安装

yum install docker-ce -y

3、启动 (并设置开机启动)

 systemctl start docker
 systemctl enable docker

docker安装时默认创建了docker用户组,将普通用户加入docker用户组就可以不使用sudo来操作docker

sudo usermod -aG docker usename  #这里替换成你自己的用户名

注意:光加入还不行,使用username重新登录
要么执行newgrp - docker 改变当前用户的有效群组

4、这里我们使用第一个命令:

docker images :    # 列出本地镜像。

语法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID。

当然,现在我们什么都看不到,因为我们并没有加载任何镜像。

image

so,我们需要去安装或则拉区别人的镜像来使用。

5、内置镜像
https://hub.docker.com/
可以直接在这里去搜,然而由于某种特殊原因,你无法下载。
于是我们要配置国内镜像。我们可以用阿里云的
https://dev.aliyun.com/search.html
(其他镜像源 请大家百度搜索)

(1)、首先你得注册,并登录到阿里云镜像中心
(2)、来到容器镜像服务,并按提示操作,配置镜像加速器

image

回到操作终端,执行以下命令:

sudo mkdir -p /etc/docker     #创建一个文件夹 叫做docker
sudo tee /etc/docker/daemon.json <<-'EOF'   #利用tee 命令把下面的配置写入 daemon.json
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
    #这里要改成你们自己的 地址
}
EOF

然后重载docker
重载所有修改过的配置文件,扫描新的或有变动的单元

sudo systemctl daemon-reload 
sudo systemctl restart docker #重启docker

三、 开始下载一个镜像

1、回到https://dev.aliyun.com/search.html
进行搜索 ,譬如输入关键字:PHP PYTHON

2、我们选取一个下载次数还算多的镜像
https://dev.aliyun.com/detail.html?repoId=1666
在操作终端根据提示执行命令:

docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

现在需要做的就是等待。。。


image

OK,我们干了什么?我们把镜像拉取到本地。

然后,我们再次执行 docker images

image

3、镜像有了,接下来干什么?

docker  run -d -p 8080:80 name/id

run:把镜像放入容器中(只在第一次运行)
-d:启动容器后台运行,并返回id
-p:把容器的80端口映射到宿主机的8080
这里关于docker run 命令我们先暂时用这么多。后面在再详细深入的了解该命令。

4、 Docker ps :列出容器

主要有些参数要说一下
(1)、 不加参数,表示查看当前正在运行的容器 .
(2)、-a,查看所有容器包括停止状态的容器 .
(3)、-l,查看最新创建的容器 .
(4)、-n=x,查看最后创建的x个容器 .
(5)、-q :静默模式,只显示容器编号。
(6)、-s :显示总的文件大小。

这里列一下docker ps的结果 :
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES

这些分别代表什么 :
CONTAINER ID:容器ID,唯一标识容器
IMAGE:创建容器时所用的镜像
COMMAND:在容器最后运行的命令
CREATED:容器创建的时间
STATUS:容器的状态(你会看到UPXXX,表示运行状态)
PORTS:对外开放的端口号
NAMES:容器名(也具有唯一性,docker是不允许创建容器名相同的容器的)

4、简单使用启动、关闭、重启容器

docker start name/id:启动一个或多少已经被停止的容器

docker stop name/id:停止一个运行中的容器

docker restart name/id:重启容器

启动容器镜像后,用浏览器直接访问我们这个镜像地址

http://xxx.xxx.xxx.xxx:8080

因为我们这个测试容器是别人集成好PHP+apachede镜像,所以我们已经能访问到

image

Q&A

如果无法访问,检查防火墙是否放行8080端口:

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

如果出现 IPv4 forwarding is disabled. Networking will not work.

解决办法:

sudo vi /etc/sysctl.conf (Linux内核参数配置文件,可在运行时修改某些内核参数,使之永久生效)

加入net.ipv4.ip_forward=1

保存并退出后,执行systemctl restart network

OK,这一章的内容就到这里,我们下一章将更加详细的学习docker实战。

END

上一篇下一篇

猜你喜欢

热点阅读