一、docker安装
1、环境仓库准备
[root@docker ~]# curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
[root@docker ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@docker ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2、 安装必要的一些系统工具
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
3、更新并安装Docker-CE
[root@docker ~]# yum makecache fast
[root@docker ~]# yum -y install docker-ce
4、启动docke服务&&查看详细信息
[root@docker ~]# service docker start
[root@docker ~]# docker version
[root@docker ~]# docker info
5、配置docker镜像加速
[root@docker ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
}
二、Docker的镜像基础管理
1、查询镜像_网络仓库
[root@docker ~]# docker search centos
# 搜索stars>9000星的镜像
[root@docker ~]# docker search mysql --filter=STARS=9000
2、下载镜像
# 镜像名称不添加版本号,默认最新
[root@docker ~]# docker pull centos
3、查询镜像_本地仓库
[root@docker ~]# docker image ls
# 名称 版本号 ID 创作者 大小
REPOSITORY TAG IMAGE ID CREATED SIZE
4、删除镜像
#删除单个镜像
[root@docker ~]# docker rmi -f 镜像名/镜像ID
#删除多个镜像,用空格隔开即可
[root@docker ~]# docker rmi -f 镜像名/镜像ID 镜像名/镜像ID
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
[root@docker ~]# docker rmi -f $(docker images -aq)
5、导入导出镜像
# 导出指定镜像 到 指定位置 并 自定义文件名称
[root@docker ~]# docker image save nginx >/opt/nginx.tar.gz
# 导入指定路径镜像 到 本地仓库
[root@docker ~]# docker image load -i /opt/nginx.tar.gz
三、docker 容器命令
1、容器查看
# 查看正在运行容器列表
[root@docker ~]# docker ps
# 查看正在所有容器列表(包含运行停止)
[root@docker ~]# docker ps -a
# 查看容器日志
docker container logs 容器ID --tail=要查看末尾多少行
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
2、容器创建运行
# 可交互_例:
[root@docker ~]# docker run -itd --name c01 centos /bin/bash
# 网络映射_例:
[root@docker ~]# docker run -d --name web01 -p 80:6379 nginx
# 数据挂载_例:
[root@docker ~]# docker run -d --name nginx01 -p 80:6379 -v /pcdata/:/rqdata nginx
# 运行可添加的参数
# -it: 交互式启动:主要针对工具类容器,一旦exit容器,容器就自动关闭
# -d: 后台运行(守护式)
# --name: 容器起名
# -p: 端口映射: 主机端口:容器端口
# -restart=always 容器随docker服务自启动
# -v: 挂载:宿主机文件存储位置:容器内文件位置
# /bin/bash: 交互路径
3、容器启动、停止、重启
# 启动
[root@docker ~]# docker start 容器ID/容器名
# 停止
[root@docker ~]# docker stop 容器名/容器ID
# 重启
[root@docker ~]# docker restart 容器ID/容器名
# 强制杀死
[root@docker ~]# docker kill 容器ID/容器名
4、容器删除
#删除单个容器
[root@docker ~]# docker rm -f 容器名/容器ID
#删除多个容器 空格隔开
[root@docker ~]# docker rm -f 容器名/容器ID 容器名/容器ID
#删除全部容器
[root@docker ~]# docker rm -f $(docker ps -aq)
5、容器运行切入
# 方式1(推荐)
[root@docker ~]# docker exec -it 容器名/容器ID /bin/bash
# 方式2
[root@docker ~]# docker attach 容器名/容器ID
6、容器退出
# 直接退出:未添加 -d(守护运行) 时,执行此命令,容器会被关闭
[root@d172d5a23181 /]# exit
# 无论是否添加-d 参数,执行此命令容器都不会被关闭
快捷键:Ctrl + p + q
7、容器文件拷贝
#从容器内 拷出
[root@docker ~]# docker cp 容器ID/名称: 容器内路径 容器外路径
#从外部 拷贝文件到容器内
[root@docker ~]# docker cp 容器外路径 容器ID/名称: 容器内路径
四、制作提交镜像
1、命令格式
[root@docker ~]# docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
2、基于容器制作镜像
ssh例子:
[root@docker ~]# docker rm -f `docker ps -qa`
[root@docker ~]# docker run -it --name "oldguo_sshv1" centos:6.9 /bin/bash
[root@df8386465269 /]# passwd
mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.110/pub/centos6\ngpgcheck=0">/etc/yum.repos.d/ftp.repo
yum makecache fast && yum install openssh-server -y
/etc/init.d/sshd start ----->重要:ssh第一次启动时,需要生成秘钥,生成pam验证配置文件
/etc/init.d/sshd stop
"hang" 运行sshd,并丢到后台
/usr/sbin/sshd -D
docker commit oldguo_sshv1 oldguo/sshd:v1
练习:
nginx 手工制作镜像
nginx -g "daemon off;"