您的位置:首页 > 运维架构 > Docker

Docker安装快速入门

2018-01-28 10:36 501 查看


用Docker的logo简单解释就是 一艘货轮上面摆放着许多个集装箱,没用集装箱之前 形状不同 大小不同的各类货物难以摆放,现在将货物都放进集装箱里面,方便了管理与存储。
详细概念参照官网文档
https://docs.docker.com/


Docker分三个部分
镜像:一个静态的模板,无法修改 类似于镜像文件。
容器:用来存储运行镜像的实例,可以读写。
仓库:用来存储docker镜像的,分公有仓库和私有仓库。

话不多说 开始操作
这里我们我们用Centos7 默认配置的网络源安装Docker

[root@localhost yum.repos.d]# yum install docker-io -y
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker.x86_64.2.1.12.6-68.gitec8512b.el7.centos 将被 安装
--> 正在处理依赖关系 docker-common = 2:1.12.6-68.gitec8512b.el7.centos,它被软件包 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64 需要
--> 正在处理依赖关系 docker-client = 2:1.12.6-68.gitec8512b.el7.centos,它被软件包 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64 需要
......
已安装:
docker.x86_64 2:1.12.6-68.gitec8512b.el7.centos

作为依赖被安装:
audit-libs-python.x86_64 0:2.7.6-3.el7                                 checkpolicy.x86_64 0:2.5-4.el7                                  container-selinux.noarc
container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7                docker-client.x86_64 2:1.12.6-68.gitec8512b.el7.centos          docker-common.x86_64 2:
libcgroup.x86_64 0:0.41-13.el7                                         libseccomp.x86_64 0:2.3.1-3.el7                                 libsemanage-python.x86_
oci-register-machine.x86_64 1:0-3.13.gitcd1e331.el7                    oci-systemd-hook.x86_64 1:0.1.14-1.git1ba44c6.el7               oci-umount.x86_64 2:2.3
policycoreutils-python.x86_64 0:2.5-17.1.el7                           python-IPy.noarch 0:0.75-6.el7                                  setools-libs.x86_64 0:3
skopeo-containers.x86_64 1:0.1.26-2.dev.git2e8377a.el7.centos          yajl.x86_64 0:2.0.4-4.el7

作为依赖被升级:
audit.x86_64 0:2.7.6-3.el7                   audit-libs.x86_64 0:2.7.6-3.el7                   libsemanage.x86_64 0:2.5-8.el7                   policycoreutil

完毕!
[root@localhost yum.repos.d]#

重启一下Docker 查看一下运行状态 一切正常

[root@localhost yum.repos.d]# systemctl restart docker.service
[root@localhost yum.repos.d]# 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 日 2018-01-28 10:06:39 CST; 6s ago
Docs: http://docs.docker.com Main PID: 12399 (dockerd-current)
CGroup: /system.slice/docker.service
├─12399 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt nativ...
└─12403 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics...

1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.509321705+08:00" level=info msg="devmapper: Successfully cre...3-base"
1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.617007435+08:00" level=info msg="Graph migration to content-...econds"
1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.618435419+08:00" level=info msg="Loading containers: start."
1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.652764572+08:00" level=info msg="Firewalld running: true"
1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.880818461+08:00" level=info msg="Default bridge (docker0) is...ddress"
1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.074971244+08:00" level=info msg="Loading containers: done."
1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.075173483+08:00" level=info msg="Daemon has completed initialization"
1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.075193331+08:00" level=info msg="Docker daemon" commit="ec85...=1.12.6
1月 28 10:06:39 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.103609290+08:00" level=info msg="API listen on /var/run/docker.sock"
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost yum.repos.d]#

docker管理命令:

container   管理容器
image       管理镜像
network     管理网络
命令:
attach      介入到一个正在运行的容器
build       根据 Dockerfile 构建一个镜像
commit      根据容器的更改创建一个新的镜像
cp          在本地文件系统与容器中复制 文件/文件夹
create      创建一个新容器
exec        在容器中执行一条命令
images      列出镜像
kill        杀死一个或多个正在运行的容器
logs        取得容器的日志
pause       暂停一个或多个容器的所有进程
ps          列出所有容器
pull        拉取一个镜像或仓库到 registry
push        推送一个镜像或仓库到 registry
rename      重命名一个容器
restart     重新启动一个或多个容器
rm          删除一个或多个容器
rmi         删除一个或多个镜像
run         在一个新的容器中执行一条命令
search      在 Docker Hub 中搜索镜像
start       启动一个或多个已经停止运行的容器
stats       显示一个容器的实时资源占用
stop        停止一个或多个正在运行的容器
tag         为镜像创建一个新的标签
top         显示一个容器内的所有进程
unpause     恢复一个或多个容器内所有被暂停的进程

在子命令中还有更多丰富的选项,可以使用
docker COMMAND --help
查看。例如:

docker run --help


现在我们利用docker部署一个nginx服务器
先搜索 nginx镜像

[root@localhost yum.repos.d]# docker search nginx
NAME                                 DESCRIPTION                                                                                            STARS      OFFICIAL   AUTOMATED
nginx                                                  Official build of Nginx.                        6959      [OK]
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1134                 [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   452                  [OK]

下载nginx镜像

[root@localhost yum.repos.d]# docker pull nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
e7bb522d92ff: Pull complete
6edc05228666: Pull complete
cd866a17e81f: Pull complete
Digest: sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63d
[root@localhost yum.repos.d]#

查看一下镜像仓库

[root@localhost yum.repos.d]#  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              3f8a4339aadd        4 weeks ago         108.5 MB
[root@localhost yum.repos.d]#

用我们下载的nginx镜像创立一个容器,并把容器内的80端口映射到centos7的8080端口

[root@localhost yum.repos.d]# docker run --name nginx -d -p 8080:80 nginx

客户端访问一下IP加端口



一个简单的部署实例就做完了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Docker 安装