基本命令
启动Docker
systemctl start docker
查看Docker版本
docker --version
查看Docker信息
docker info
查看本地镜像
docker images
删除本地镜像
docker rmi [镜像名称/镜像ID]
如果删除镜像报错,提示包含子镜像,错误信息如下,那么使用如下命令删除
错误信息:
unableto delete 2302766b9032 (cannot be forced) - image has dependent child images
docker rmi [镜像名称]:[Tag]
docker rmi guanwang_centos:latest
下载centos7镜像
docker pull centos等同于:docker pull centos:latest也可指定版本:docker pull centos:7.2.1511
进入docker中的CentOS7
docker run -itcentos /bin/bash
容器命名(名称必须唯一)
docker run --name [容器名称需要保证唯一] -it 6866/bin/bash
centos是镜像名称,也可以是 IMAGE ID, IMAGE ID只需要前四位数字-能区分出是哪个image即可,不需要输入全。登录成功后接下来就和我们之前在没使用docker时的centos操作一样。
端口映射
docker run-p10022:22 -it centos/bin/bash
多端口映射
docker run -d-p10022:22 -p8080:80 -it centos/bin/bash
后台运行
docker run -d-p10022:22 -it centos/bin/bash
-d参数:容器在后台以守护进程运行。
-p参数:容器的 22端口映射到本机的 10022端口。
-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
root@b4ad1d1c87da/]#
docker run -d-p1022:22 -p8090-8099:8090-8099 -itcentos /bin/bash
容器命名
docker rename old_name new_name
查看本机正在运行的容器
docker container ls或docker ps
查看本机所有容器,包括停止的容器
docker container ls --all或docker ps -a
关闭正在运行的容器
docker kill [容器ID]
删除容器(注意删除的为容器不是镜像)
docker rm [容器ID]
退出当前容器
exit;
dockercontainerrun命令是新建容器,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望重复使用容器,就要使用dockercontainer start命令,它用来启动已经生成、已经停止运行的容器文件。
docker start [容器ID]docker stop [容器ID]
dockercontainer logs命令用来查看 docker 容器的输出,即容器里面 Shell 的标准输出。如果dockerrun命令运行容器的时候,没有使用-it参数,就要用这个命令查看输出。
docker logs [容器ID]
dockercontainer exec命令用于进入一个正在运行的 docker 容器。如果dockerrun命令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令了。
docker exec -it [容器ID] /bin/bashdocker exec -it oracle11g bash
dockercontainer cp命令用于从正在运行的 Docker 容器里面,将文件拷贝到本机。下面是拷贝到当前目录的写法。
docker cp[容器ID]:[容器内文件路径] [本机路径]
停用全部运行中的容器
docker stop$(docker ps -q)
删除全部容器
docker rm$(docker ps -aq)
将容器提交到镜像(newImageName为新镜像的自定义名称)
docker commit [容器ID] [自定义镜像名称]
挂载一个主机目录作为数据卷
使用-v标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷:
docker run -d -p 10022:22 -v /Users/jiangxiaolong/logs:/home/public-itcentos_ssh/home/auto_service.sh
上面的命令加载主机的/Users/jiangxiaolong/logs目录到容器的/home/public目录,注意指定的public这个目录不能事先存在,启动这个容器时会自动创建这个目录:
这个功能在进行测试的时候十分方便,比如用户可以放置一些程序或数据到本地目录中,然后在容器内运行和使用。
docker服务重启后容器也自动重启
使用--restart=always
docker run -d-it --restart=always centos /bin/bash
如果已经启动了则可以使用如下命令修改为自动启动
docker update --restart=always [容器ID]
下载和加载镜像
下载镜像
docker save -o /Users/jiangxiaolong/test.docker centos
/Users/jiangxiaolong/test.docker为需保存的本机文件路径
centos 为镜像名称
加载镜像
docker load --input /Users/jiangxiaolong/test.docker
/Users/jiangxiaolong/test.docker为本机镜像文件
加载完成即可使用docker images进行查看,注意加载完的镜像名称和镜像备份前是相同的,但是image ID不同。
CentoOS6.5安装Docker
升级内核
Centos6.5内核过低需要升级内核,否则在启动容器时/usr/sbin/init无效
下载并安装内核
# cd /etc/yum.repos.d # wget http://www.hop5.in/yum/el6/hop5.repo# yum install kernel-ml-aufs kernel-ml-aufs-devel
修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)
vim /etc/grub.conf
重启系统,这时候你的内核就成功升级了。
查看升级是否成功
# uname -r3.10.5-3.el6.x86_64
安装docker
1.先查看下你的系统内核是多少
# uname -r2.6.32-431.el6.x86_64
我的是CentOS 6.5 ,系统内核还不到3.8版本,需要升级内核,如上
2.看看你的系统到底是什么
# cat /etc/issueCentOSrelease 6.5 (Final)Kernel \r on an \m
3.安装:
# rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm# rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
4.尝试一下是否能安装上docker
# yum -y installdocker-io lvm2 lvm2-devel# rpm -qa | grepdocker docker-io-1.7.1-2.el6.x86_64
竟然装上了
5.启动并设置开机自动启动
# service dockerstart# chkconfig dockeron