redhat 离线安装 docker

1. 下载地址

官网下载地址:https://download.docker.com/linux/static/stable/x86_64/
官网文档地址:https://docs.docker.com/engine/install/binaries/

2. 解压并注册为service

  1. 下载安装
# 下载
tarball="docker-18.09.7.tgz"
wget -c https://download.docker.com/linux/static/stable/x86_64/${tarball}
# 解压
tar -zxvf ${tarball}
# 复制到/usr/bin
cp docker/* /usr/bin

# 上步中必须拷贝解压出的文件到/usr/bin目录下,而不是在/usr/bin下建立文件夹,然后再整个拷过来。我这里就犯了个错误,在usr/bin下建立个docker目录,运行时报异常。应该是这个目录没有PATH中定义
  1. 添加到service: vim /etc/systemd/system/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
  1. 启动服务
#添加文件权限并启动docker
chmod +x /etc/systemd/system/docker.service
#重载unit配置文件
systemctl daemon-reload
#启动docker
systemctl start docker       
#设置开机自启
systemctl enable docker.service
  1. 检查状态
# 状态
systemctl status docker
# 版本
docker -v

添加docker的镜像源

vi /etc/docker/daemon.json

内容如下:

{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

镜像命令:

docker images                          //查看本地已经存在的镜像

docker search  imageName     //搜索网络上镜像

docker pull imageName:versionNum         //从镜像源拉取镜像

docker rmi imageID   //删除镜(根据ID)

docker rmi `docker images -q` //删除所有镜像  注意  ``是esc键下的字符

容器命令:

docker ps  //查看正在运行的容器

docker ps -a  //查看所有容器

docker ps -l  //查看最后一次运行的容器

dokcer ps -f status=existed //查看停止的容

docker run -it --name=容器名称 镜像名称:标签 /bin/bash  //交互式方式创建容器并进入容器

要退出当前 容器:  exit

docker run -di --name=容器名称 镜像名称:标签  //守护式方式创建容器

以守护式方式创建容器后进入容器:docker exec  -it 容器名称或ID  /bin/bash

注意:直接以交互式创建容器并进入容器,exit后,容器结束 运行;以守护式创建容器,再进入容器,exit后,容器还是运行状态。

容器启动、停止

docker start 容器名称或id

docker stop 容器名称或id

文件拷贝

docker cp 需要拷贝的文件或目录  容器名称:容器目录    //拷贝宿主机文件到容器

docker cp 容器名称:容器目录  需要拷贝的文件或目录   //拷贝容器内文件到宿主机

创建容器时报异常:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.

需要执行setenforce 0 (临时使用,重启后消失)

/etc/selinux下的config文件中的SELINUX属性改为disabled

vi /etc/selinux/config

可以看到里面的属性为:enforcing强制性的。将SELINUX属性改为disabled,保存退出:wq,重启liunx系统即可

 

文件拷贝
//从宿主机拷贝到容器
docker cp 需要拷贝的文件或目录 容器名称:容器目录
//从容器拷贝到宿主机
docker cp 容器名称:需要拷贝的文件或目录 宿主机目录或文件
目录挂载
创建容器 添加-v参数,后边为 宿主机目录:容器目录
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=myCentos2 centos:latest
如果共享的是多级目录,可能出现权限不足的情况。这是因为系统的安全模块selinux把权限禁掉了。需要添加参数 --privileged=true来解决挂载的目录没有权限的问题
查看容器IP地址
docker inspect 容器名称(或ID)
也可直接执行下面的命令直接输出IP
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(或ID)
删除容器
docker rm 容器名称(或ID)
运行中的窗口必须stop后才能删除,同理镜像也是删除不掉的。
 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值