Docker安装快速入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker安装快速入门相关的知识,希望对你有一定的参考价值。

技术分享图片

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

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

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

[[email protected] 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

完毕!
[[email protected] yum.repos.d]# 

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

[[email protected] yum.repos.d]# systemctl restart docker.service
[[email protected] 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.
[[email protected] 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镜像

[[email protected] 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镜像

[[email protected] 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
[[email protected] yum.repos.d]# 

查看一下镜像仓库

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

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

[[email protected] yum.repos.d]# docker run --name nginx -d -p 8080:80 nginx

客户端访问一下IP加端口
技术分享图片

一个简单的部署实例就做完了

以上是关于Docker安装快速入门的主要内容,如果未能解决你的问题,请参考以下文章

Docker快速入门

Docker安装快速入门

docker-compose教程(安装,使用, 快速入门)

Docker入门之快速安装和卸载使用Centos7

智汀家庭云-快速入门:使用Docker运行

Docker快速入门总结笔记