uname-r
更新最新的包管理
sudo yum upade
卸载旧版本
sudo remove docker docker-common docker-selinux docker-engine
加载 Device Mapper 模块
modprode dm-mod
验证 Device Mapper 安装
ls -l /sys/class/misc/device-mapper
安装docker-Io
yum -y install docker-io
启动服务器
service docker start
设置开机启动
systemctl enable docker.service
查看docker信息
docker info
查看docker版本
docker version 或 docker -v
docker daemon 是否激活
systemctl status docker.service
配置docker daemon 可在不只在主机上能访问
cd /usr/lib/systemd/system
vim docker.service
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FlxUXWnY-1586577864418)(http://note.youdao.com/yws/res/4284/WEBRESOURCE5d7c74f423332ecc86cf3ec672487281)]
然后重启docker daemon
systemctl daemon-reload
systemctl restart docker.service
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hs447weK-1586577864420)(http://note.youdao.com/yws/res/4290/WEBRESOURCEc58f712b1c8972ed7a88d029ee90b31d)]
查看centos系统的网络接口
netstat -tulp
查看连接到服务器的信息
docker -H 192.168.178.169
vim /etc/docker/daemon.json
添加如下内容
{
“registry-mirrors”:["http://hub-mirror.c.163.com"]
}
然后 重新载入systemd,扫描新建和改变的单元
sudo systemctl deamon-reload
重新启动docker服务
sudo service docker restart
docker pull hello-world
docker pull ubuntu
docker images
docker images hello-world // 查看指定镜像
docker run hello-world
//在容器内创建一个新镜像
docker run -it ubuntu // 进入到ubuntu容器内 容器是镜像的实例化
docker commit 86b007dc3533 07cxy:v1
// 86b007dc3533 是容器的ID
// 07cxy:v1 是要新创建的镜像名字
容器的ID可通过运行容器 然后docker ps 拿到
docker commit -a "cxy" -m "a test" a404c6c174a2 mymysql:v1
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
// 要在那个dockerfile文件的目录中
docker build -t dockertest_mysql
docker rmi 镜像ID
docker rmi $(docker images-q)
docker rm -f $(docker ps -aq) & docker rmi $(docker images -q)
docker rm $(docker ps -a | grep ubuntu)
docker ps -a // 查看当前系统环境下, 所有的容器(包括停止的容器)
docker ps -aq // 查看当前系统环境下, 所有的容器(包括停止的容器)的ID
docker run hello-world // 简单创建
docker run -d -p 3306:3306 镜像名字/ID
/*
-d 后台运行容器,并返回容器ID。
-p 随机端口映射,容器内部端口随机映射到主机的高端口
*/
docker start 已经停止容器的ID/名字
docker restart 正在运行容器的ID/名字
docker stop 正在运行容器的ID/名字------停止容
docker rm 已经停止的容器的ID/名字
docker rm $(docker ps -aq) // 删除所有已经停止运行的容器
// 删除并停用所有的容器(包括停止和运行)
docker stop $(docker ps -q) & docker rm -f $(docker ps -aq)
进入前要先启动容器
然后: docker exec -it 容器ID/名字 bash
docker login
docker logout
docker tag nginx:v1 qddscxy/nginx:v1
// 然后查看下镜像: 如下图
docker push qddscxy/nginx:v1
这里以CentOS系统为例。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f361db2.m.daocloud.io
该脚本可以将 --registry-mirror 加入到你的Docker配置文件/etc/docker/daemon.json中。
适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。
记得systemctl restart docker
检查换源结果,我们进入到/etc/docker路径,查看一下daemon.json,发现本机Docker的镜像地址已经修改。
docker pull qddscxy/nginx:v1
因为本地存在了,所以他更新了
查看下应该是这玩意
使用docker run命令运行下载的镜像,运行的结果和本地上传的镜像运行结果相同。
数据卷是Docker主机文件系统中的目录或文件,能够直接被挂到容器的文件系统中。
数据卷的特点:
1、数据卷是目录或文件,不是没有格式化的磁盘。
2、容器可以读写数据卷中的数据。
3、数据卷数据可以被永久的保存,即使使用它的容器已经销毁。
docker volume create AtestVolume
docker volume list
docker inspect AtestVolume
docker volume rm AtestVolume
数据卷容器是专门为其他容器提供数据卷的容器。它提供的卷可以是绑定装载的卷,也可以是Docker管理卷。
Docker管理卷与绑定装载的区别就是不需要指定绑定源,只需要指定绑定点就可以。
例如:想要创建多个centos容器,并且希望这些容器之间共享数据,可以先创建一个数据卷容器,该容器中并不运行任何应用。
docker run -it -v /06ke:/data --privileged=true centos bash
注意: /06ke 是本地文件目录
/data 是存在数据卷的文件夹
--privileged=true 进入data目录就拥有读写权限。
centos centos系统
ro选项,来指定挂载时文件权限是只读的。
# docker run -it -v /06ke:/data:ro --privileged=true centos bash
同样我们可以在Dockefile中,使用 VOLUME 指令来创建添加一个或多个数据卷。
docker run -it -v/data --name a_test_rongqi centos
docker inspect a_test_rongqi centos
--volumes-from 把多个容器中的多个数据卷放到一起。
之前创建一个有一个数据卷的容器
docker run -it -v/data --name a_test_rongqi centos
创建一个名为data01的容器
创建一个名为data02的容器
测试下
1.删除所有使用共享数据卷的容器
docker ps 查看下
然后docker rm -f 容器ID
2.列出所有不被引用的数据卷。
docker volume ls -f dangling=true
3.使用docker volume rm命令,删除数据卷容器中共享的数据卷
docker volume rm 容器ID
可以使用如下命令将数据卷中的数据打包,并将打包后的文件拷贝到主机当前目录中,我们使用–volumes-from 参数来创建一个挂载了要备份数据卷的容器。
[root@centos-7 zxc]# docker run --volumes-from data_provider -v $(pwd):/backup --name backup_worker1 --privileged=true centos tar -cvPf /backup/backup.tar /data
docker network ls
设置容器为none网络
docker run --network=none --device /dev/snd docker.io/zhaoxc/music-java
docker network ls
创建容器时,使用 --network=none 参数,设置Docker容器网络为none网络。 none网络为隔离网络,一般对安全性高并且不需要联网的应用可使用,比如随机产生密码的容器。
docker run -it --network=none --device /dev/snd music-java:v1
使用 --network=host 参数,设置Docker容器网络为host网络。
docker run -it --network=host --device /dev/snd/ music-centos:v1
host网络和主机网络一样
注意:大部分的 compose 命令都需要到 docker-compose.yml 文件所在的目录下才能执行。
使用docker-compose up命令来构建并启动容器。
如果Compose要以守护进程模式运行,需要使用-d参数。