DOCKER踩坑记录

1、让docker允许外部访问

修改docker.service配置文件里的参数

vim  /usr/lib/systemd/system/docker.service

改为:

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -H tcp://0.0.0.0:7654

解释:

在启动该服务时需要执行的命令行(命令+参数)

此处默认2375为主管理端口,unix:///var/run/docker.sock用于本地管理,7654是备用的端口。-H fd://  等同于 --iptables=false 让docker取消对我们系统iptables的操作和修改

备注:

完成上述修改后:docker重新读取配置文件

systemctl daemon-reload

docker重启

systemctl restart docker

2、使用window系统编辑脚本后到linux中无法识别脚本

原因:

在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以才会有 多出来的\r

处理:

sed -i 's/\r$//'  *.sh

解释:

会把 *.sh 中的\r 替换成空白!

3、docker安装

  1. 在线安装

软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

sudo yum -y install docker-ce

下载软件源信息非常重要,许多依赖都需要根据docker-ce.repo来下载

  1. 离线安装

制作离线安装包分三步:下载docker安装包及其依赖对下载下来的安装包制作本地源准备本地源配置文件

参考博文:docker离线安装_docker 离线安装_阿奴波仔的博客-CSDN博客

4、docker卸载方式

移除旧版本

yum remove docker  docker-client  docker-client-latest \

           docker-common  docker-latest  docker-latest-logrotate \

           docker-logrotate  docker-selinux  docker-engine-selinux \

           docker-engine

删除配置包

rm -rf /etc/systemd/system/docker.service.d

rm -rf /var/lib/docker

rm -rf /var/run/docker

查询安装过的包

yum list installed | grep docker

删除安装的软件包

yum -y remove $index

删除镜像/容器等

rm -rf /var/lib/docker

5、关于shell脚本变量引用的坑

用shell 实现添加用户和赋予用户权限

坑1:shell 的变量中带空格时,在调用时必须用""罩住

坑2:sed调用shell 变量要用''单引号罩住

例子:

USER_CMD="$USER    ALL=(ALL)  ALL"

sed -i '$a '"$USER_CMD"'' /path

修改docker存储路径方法

停止服务

systemctl stop docker

迁移目录

# 新建目录

mkdir -p /home/docker

mv /var/lib/docker/* /home/docker/

修改配置文件

centos6下

vi /etc/sysconfig/docker:

other_args="--graph=/home/docker --selinux-enabled -H fd:// --insecure-registry=registry.abc.com --registry-mirror=https://pee6w651.mirror.aliyuncs.com"

centos7下

vi /usr/lib/systemd/system/docker.service:

ExecStart=/usr/bin/dockerd -g /home/docker --insecure-registry registry.abc.com --registry-mirror=https://pee6w651.mirror.aliyuncs.com

注:registry-mirror镜像地址有可能访问不了 导致docker无法启动,可以更换

建立软连接

rm -rf /var/lib/docker

ln -s /home/docker /var/lib/docker

重启服务

systemctl daemon-reload

systemctl restart docker

就此数据迁移完毕!!

其他:

VIM 替换所有字符串

:%s/dev/mydev/g 

:%s/$releasever/7/g 

:%s/$basearch/x86_64/g 

你可能感兴趣的:(docker,linux,运维)