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

Docker安装、使用、镜像命令汇总

2019-06-13 10:35 1176 查看

一、Docker 安装

使用国内源安装新版docker
删除已安装的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
配置阿里云Docker Yum源
# yum install -y yum-utils device-mapper-persistent-data lvm2 git
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装指定版本
查看Docker版本:
# yum list docker-ce --showduplicates

安装较旧版本(比如Docker 17.03.2) :
需要指定完整的rpm包的包名,并且加上--setopt=obsoletes=0 参数:
# yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

安装Docker新版本(比如Docker 18.03.0):
加上rpm包名的版本号部分或不加都可以:
# yum install docker-ce-18.03.0.ce  -y
或者
# yum install docker-ce -y

启动Docker服务:
#systemctl enable docker
#systemctl start docker

查看docker版本状态:
# docker version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

报错1:
docker info的时候报如下错误
bridge-nf-call-iptables is disabled

解决1:
追加如下配置,然后重启系统
# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

问题2:
虚拟机ping百度也能ping通,但是需要等好几秒才出结果,关键是下载镜像一直报错如下
# docker pull daocloud.io/library/nginx
Using default tag: latest
Error response from daemon: Get https://daocloud.io/v2/: dial tcp: lookup daocloud.io on 192.168.1.2:53: read udp   192.168.1.189:41335->192.168.1.2:53: i/o timeout

解决2:
我的虚拟机用的网关和dns都是虚拟机自己的.1或者.2,把DNS改成8.8.8.8问题就解决了,ping百度也秒出结果
# vim /etc/resolv.conf
nameserver 8.8.8.8

问题3:
执行 yum makecache 报错,这是阿里源配的有问题
解决3:
vim CentOS-Base.repo
:%s/$releasever/7/g
yum makecache

二、Docker 命令汇总

docker search 镜像名  搜索所有镜像
docker pull 镜像名   拉取镜像
docker images 列出镜像
docker rmi  镜像名   删除镜像
docker run -it  镜像名  /bin/bash    创建容器
docker ps 查看运行的容器
docker ps -a  查看所有容器 包括已经退出没有在运行的容器
docker ps -a -q  只查看所有容器id
docker inspect 容器名/id   查看容器的详细配置信息
docker start name  启动容器
docker stop name 关闭容器
docker kill name  强制终止容器
docker kill $(docker ps -q)  杀死所有running 状态的容器
docker rm 容器名/id  删除容器
docker logs 容器名 查看容器的日志
docker attach 容器名
docker exec -it  容器名 /bin/bash  进入容器
docker cp /root/a.txt  mysql:/usr/local/bin   将宿主机目录拷贝到容器里

使用 docker commit 指令,把一个正在运行的容器,直接提交为一个镜像
docker commit -m "my images version1" -a "zhu" 108a85b1ed99 daocloud.io/ubuntu:v2
-m      添加注释
-a       作者
108a85b1ed99   容器环境id
daocloud.io/ubuntu:v2     镜像名称:hub的名称/镜像名称:tag

关于镜像迁移:
docker save -0 nginx.tar nginx  将镜像打成tar包
docker load  < nginx.tar 将tar包导入镜像
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: