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安装快速入门的主要内容,如果未能解决你的问题,请参考以下文章