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-ce 最新版安装

本次测试环境Centos7.6 ,

方法一:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

方法二:

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

vim /etc/yum.repos.d/docker-ce.repo

方法三:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

修改配置文件:将enabled=0,改为enabled=1

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/test
enabled=1

列出所有docker版本,并排序

选择指定版本安装,此时可能会报错,是因为没有安装相应版本的docker-ce-selinux,需要先安装docker-ce-selinux,安装完成后查看安装的版本
yum list docker-ce-selinux- --showduplicates | sort -ryum -y install docker-ce-17.03.2.ce-1.el7.centos
yun -y install docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch
docker -v
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systenctl restart docker

  

、docker-compose 最新版安装

docker-compose版本下载地址:

https://github.com/docker/compose/releases
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose -v
原文地址:https://www.cnblogs.com/ling-yu-amen/p/10094737.html