A, Docker domestic source installation
使用国内源安装新版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
问题4:
Error: Package: 3:docker-ce-18.09.5-3.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2.9
yum -y install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm
Two, Docker official installation
CentOS
如果是centos,上面的安装命令会在系统上添加yum源:/etc/yum.repos.d/docker-ce.repo
# wget https://download.docker.com/linux/centos/docker-ce.repo
# mv docker-ce.repo /etc/yum.repos.d
# yum install -y docker-ce
问题1:
Error: Package: 3:docker-ce-18.09.5-3.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2.9
yum -y install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm
Three, Docker Command Summary
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包导入镜像