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

【试验】亲身验证docker从安装到使用-超级详细版本

2019-07-15 10:54 525 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_37611270/article/details/95941387

docker安装详细步骤(yum版本)

备注:Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

使用 root 权限登录 Centos。执行yum update确保 yum 包更新到最新。

卸载旧版本的
yum remove docker docker-common docker-selinux docker-engine

安装 yum-utils、device-mapper-persistent-data、lvm2包
yum install -y yum-utils device-mapper-persistent-data lvm2

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

查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r

执行安装命令
yum install docker-ce
yum install docker-ce-17.12.0.ce

设置开机启动
systemctl start docker
systemctl enable docker

验证docker是否正常开启
docker version

Client:
Version:           18.09.7
API version:       1.39
Go version:        go1.10.8
Git commit:        2d0083d
Built:             Thu Jun 27 17:56:06 2019
OS/Arch:           linux/amd64
Experimental:      false

Server: Docker Engine - Community
Engine:
Version:          18.09.7
API version:      1.39 (minimum version 1.12)
Go version:       go1.10.8
Git commit:       2d0083d
Built:            Thu Jun 27 17:26:28 2019
OS/Arch:          linux/amd64
Experimental:     false
[root@slave yum.repos.d]#

docker安装详细步骤(离线版本)

Linux下离线安装Docker
一、基础环境
1、操作系统:CentOS 7.3
2、Docker版本:18.06.1 官方下载地址(打不开可能需要***)
3、百度云Docker 18.06.1地址:https://pan.baidu.com/s/1YdN9z72QutPkHBfLq06H1A 密码:dvvh
4、官方参考文档:https://docs.docker.com/install/linux/docker-ce/binaries/#install-static-binaries

二、Docker安装
1、解压
tar -xvf docker-18.06.1-ce.tgz
2、将解压出来的docker文件内容移动到 /usr/bin/ 目录下
cp docker/* /usr/bin/
3、将docker注册为service
vim /etc/systemd/system/docker.service
将下列配置加到docker.service中并保存
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify

the default is not to use systemd for cgroups because the delegate issues still

exists and systemd currently does not support the cgroup feature set required

for containers run by docker

ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID

Having non-zero Limit*s causes performance problems due to accounting overhead

in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

Uncomment TasksMax if your systemd version supports it.

Only systemd 226 and above support this version.

#TasksMax=infinity
TimeoutStartSec=0

set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

kill only the docker process, not all processes in the cgroup

KillMode=process

restart the docker process if it exits prematurely

Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
4、启动
chmod +x /etc/systemd/system/docker.service #添加文件权限并启动docker
systemctl daemon-reload #重载unit配置文件
systemctl start docker #启动Docker
systemctl enable docker.service #设置开机自启
5、验证
systemctl status docker #查看Docker状态
docker -v #查看Docker版本

docker使用

删除下载的镜像总是提示镜像正在被停止的容器使用,刚刚尝试了以下方法可以正常删除

docker ps -a | grep “Exited” | awk ‘{print $1 }’|xargs docker stop
docker ps -a | grep “Exited” | awk ‘{print $1 }’|xargs docker rm
docker images|grep none|awk ‘{print $3 }’|xargs docker rmi 镜像id

[root@slave ~]# docker images|grep none|awk '{print $3 }'|xargs docker rmi a803b2474b20
Untagged: oraclelinux:latest
Untagged: oraclelinux@sha256:9d7cf2eb1171841f630914980bfeb62b119399d873cd65a38afec1ab82ced14a
Deleted: sha256:a803b2474b20ba6e3ca7d99b1c81d09a04852183f0d850711aed8df63f6bd07a
Deleted: sha256:52623949541e258114fd72c4d4b3e7509e8817e9f431ae2a7c2b6ffa6119c5f8
[root@slave ~]# docker  images -a
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
yandex/clickhouse-server   latest              76a0758826b1        4 days ago          475MB
postgres                   latest              6dc0e6af942c        13 days ago         312MB
centos                     latest              9f38484d220f        4 months ago        202MB
[root@slave ~]#

备注:
**使用一个镜像启动docker容器
docker run -it 容器名称 /bin/bash

**查看容器状态
docker ps -a

**启动停止一个容器
docker start/stop 容器ID

**进入一个容器
docker exec -it 容器ID /bin/bash

**docker 提示b-bus没有权限处理办法
docker run --privileged -ti --name test1 centos /usr/sbin/init

容器和容器之间网络

宿主机和容器之间的网络

通过映射宿主机的端口到容器的端口实现访问容器的端口,映射命令如下
-p 中指定映射到 host 某个特定端口,例如可将 80 端口映射到 host 的 8080 端口:


每一个映射的端口,host 都会启动一个 docker-proxy 进程来处理访问容器的流量:

  1. docker-proxy 监听 host 的 32773 端口。
  2. 当 curl 访问 10.0.2.15:32773 时,docker-proxy 转发给容器 172.17.0.2:80。
  3. httpd 容器响应请求并返回结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: