Docker入门

Posted ling-yu-amen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker入门相关的知识,希望对你有一定的参考价值。

一、Docker 基本操作 (环境:Centos7)

1 systemctl stop firewalld
2 systemctl disable firewalld
3 sed -i /^SELINUX=/cSELINUX=disabled /etc/selinux/config
4 setenforce 0
5 yum -y install docker
6 systemctl  start docker.service
7 systemctl  enable docker.service

如果是CentOS 6在base源中无docker,需要增加yum源

(1)升级版本内核(可选项,centos6默认内核为2.6,centos7默认内核为3.10)查看命令

cat  /etc/redhat-release
uname -a
uname  -r

(2)Centos  6内核升级:yum安装带aufs模块的3.10内核

cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum -y install kernel-ml-aufs kernel-ml-aufs-devel

修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置),重启生效。

yum -y install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io
service docker start
chkconfig –add docker chkconfig docker on
或:
rpm  -ivh  http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/d/docker-io-1.7.1-2.el6.x86_64.rpm

二、Docker 基本命令

docker version
docker info  查看详细信息
docker run hello-world 测试

1、查找、下载镜像
docker search centos                查找CentOS
docker search -s 100 ubuntu         查找star星数在100以上的Ubuntu版本
docker pull centos                  拉取(下载)镜像
从daocloud 下载镜像:
dao pull mysql 
docker pull daocloud.io/library/centos

2、查询已下载镜像
docker image list                  查询镜像 = docker images
docker images -q                   查询镜像ID

3、删除镜像
docker rmi daocloud.io/library/mysql --force       强制删除镜像(镜像被容器使用,但容器没有运行,可使用--force,也可rmi -f)
docker rmi ed9c93747fe1Deleted                     ID号方式删除镜像
docker rmi $(docker images -q)                     删除所有镜像
docker history daocloud.io/ubuntu 显示镜像的制作历史

4、创建、断开容器
docker run -it centos/ID /bin/bash                  用centos镜像创建并运行一个容器 ( -i 捕获标准输入输出; -t 分配一个终端或控制台)
docker run -it -d centos/ID /bin/bash               创建并直接运行到后台 
exit 断开并关闭当前容器(Ctrl + D)
Ctrl + P + Q 断开不关闭
docker create -it daocloud.io/library/centos:5 /bin/bash  创建但不启用

5、查询容器
docker ps                                       查询在运行的容器
docker ps -a                                    查看所有容器
docker ps -a -q                                 查询所有容器的ID
docker ps -l                                    列出最近一次启动的容器
docker inspect d95a220a4(ID)                    查看容器信息

6、连接使用容器 
docker attach + ID                              连接已开启的容器
docker exec -it name/ID /bin/bash               连接后台型的容器
docker start name/ID                            启动容器
docker stop name/ID                             关闭容器
docker kill $(docker ps -a -q)                  强制关闭所有容器
docker restart name/ID                          重启容器

7、删除容器
docker rm + ID号                                删除容器
docker rm –f + ID号                             强行删除正在运行的容器
docker rm `docker ps -qf status=exited`         删除所有状态为exited的容器 

8、拷贝
docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root             拷贝容器中文件到宿主机
docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/            宿主机文件拷贝至容器中

9、其他
docker logs + ID号                                                    将容器执行过的命令打印出来
docker top birdben/ubuntu:v1                                          显示一个运行的容器里面的进程信息
docker diff elated_lovelace                                           能够查看出容器的变化文件(包括创建、删除、内容变化等)
A /haha 
A /c.txt 注:反馈中:C代表文件内容变化了;A代表文件被创建、删除
C /etc/passwd 
docker events                                                          实时输出Docker服务器端的事件(包括容器的创建,启动,关闭等)

10、容器卷
注:新卷只能在容器创建过程当中挂载
docker run -it --name="voltest" -v /tmp:/test daocloud.io/library/centos:5 /bin/bash 共享目录下的内容(若删除容器中目录下内容,宿主机的原目录下文件也会被删除)
注: /tmp 宿主机的路径; /test 容器中的路径
docker run -it --volumes-from bc4181 daocloud.io/library/centos:5 /bin/bash 共享其他容器的卷(新创建容器,使用ID为bc4181的容器卷(挂载目录与原容器的挂载目录相同))

11、查询容器IP
docker inspect <container id>

docker inspect --format {{ .NetworkSettings.IPAddress }} <container-ID>

docker inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} container_name_or_id

 








以上是关于Docker入门的主要内容,如果未能解决你的问题,请参考以下文章

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Atom编辑器入门到精通 Atom使用进阶

Docker入门

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)

Cg入门19:Fragment shader - 片段级模型动态变色