docker-centos 7.2
1、安装准备
预防volumes项出现Permission denied
setenforce 0 #关闭selinux防火墙,临时关闭。永久关闭需改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled并重启 systemctl stop firewalld.service #关闭firewalld防火墙 yum update #一定要做,否则后续build出错
2、安装Docker
yum install docker docker -v ##查看版本 service docker start ##开启docker服务才能用其他命令 chkconfig docker on docker images
3、配置Docker加速器
3.1、阿里云的加速器,注意自己注册申请,cd6xo91e.mirror.aliyuncs.com换成自己的。
vim /etc/docker/daemon.json 这个json文件不存在的,不需要担心,直接编辑
把下面的贴进去,保存,重启即可
tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://cd6xo91e.mirror.aliyuncs.com"] } EOF
3.2、老版本直接修改/etc/systemd/system/docker.service文件:将/etc/systemd/system/docker.service 文件的“ExecStart=/usr/bin/docker-current daemon“替换成
ExecStart=/usr/bin/docker daemon --registry-mirror=https://cd6xo91e.mirror.aliyuncs.com
也可以使用如下的脚本,
# 系统要求 CentOS 7 以上,Docker 1.9 以上。 sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service //如果不存在则执行该条 sudo sed -i "s|ExecStart=/usr/bin/docker-current daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=https://cd6xo91e.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service # (sed -i 's/要被取代的字串/新的字串/g' )
3.3、重启
sudo systemctl daemon-reload
sudo service docker restart
注意:也可以配置daocloud的加速器,我的:0f3bdc1e.m.daocloud.io。
4、安装docker-Compose(持续化、简化docker运行时的定义命令)
yum install docker-compose
如果不行就用下面方式
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose # 上面超慢的,可以直接到https://github.com/docker/compose/releases下载对应版本的文件(这里是docker-compose-Linux-x86_64),并放置到/usr/local/bin/下改名为docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -v ##查看版本 docker-compose up ##升级 docker-compose up --build ##如果yuml或者dockerfile文件修改了,直接用改命令重构
docker-compose logs -f -t >> log.log ##查看日志docker-compose运行日志,不知道有没有限制,试过1个月前的都能看到
5、进入容器bash
5.1 使用docker exec
docker exec -it container_id bash
5.2 使用nsenter(在宿主机使用容器的shell)
nsenter安装:
cd /tmp wget https://www.kernel.org/pub/linux/utils/util-linux/v2.29/util-linux-2.29.tar.gz tar zxf util-linux-2.29.tar.gz cd util-linux-2.29 ./configure --without-ncurses # 如果上面出现gcc错误,安装gcc: yum -y install gcc make nsenter cp nsenter /usr/local/bin
nsenter使用:
PID=`docker inspect --format "{{ .State.Pid }}" node1 ` nsenter --target $PID --mount --uts --ipc --net --pid # 上面2条命令可以合一: nsenter --target `docker inspect --format "{{ .State.Pid }}" node1` --mount --uts --ipc --net --pid # ok了可以随便输入linux命令检查一下看看,比如: ls #查看文件 ls -l #查看权限
6、Docker清除命令
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi -f $(docker images -q -a)
7、拉取镜像、运行容器
#拉取官方的最新版本的镜像
docker pull nginx:latest
#运行 nginx 容器
docker run --name nginx-test -p 8080:80 -d nginx
#测试
http://172.30.31.73:8080/
8、创建、发布镜像
cd /ansible docker build -t lxsky/ansible:2.9 . docker push lxsky/ansible:2.9