第一部分
1.安装docker
yum install docker
docker -v
详情请参照博文 https://blog.csdn.net/u012814856/article/details/80493760
systemctl 系统服务 管理器指令,是service和chkconfig两命令组合
启动docker:systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态:systemctl status docker
开机启动: systemctl enable docker
下载镜像 【后来我根据这个博文配置的 https://blog.csdn.net/herofkk/article/details/78304983 注册了DaoCloud的会员,但是到最后我用了阿里的】
docker search redis 从docker仓库查找对应的镜像
docker中央仓库pull会很慢,从https://lug.ustc.edu.cn/wiki/mirrors/help/docker拉取
步骤:
(1) 编辑文件 vi /etc/docker/daemon.json 不存在就手动创建
(2)在该文件中输入如下内容:
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
或者
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
或者
# 阿里的需要和daocloud一样,也是用到了加速器
{
"registry-mirrors": ["https://1jarpdgy.mirror.aliyuncs.com"]
}
(3)一定要重启docker服务,如果重启docker无法加速,可以重启os
systemctl restart docker.service
docker pull centos:7
删除镜像
a.docker rmi $IMAGE_ID 删除指定镜像
b.docker rmi `docker images -q` 删除所有的镜像 (注:不是单引号,1左边的符号键)
查看镜像
docker ps
docker ps -a 查看全部 包括已经停止的容器
docker ps -l 查看最后一次运行的容器
docker ps -f status=exited 查看停止的容器
创建容器
创建命令:docker run
-i : 表示运行容器
-t:表示容器启动后会进入命令行。加入这两个参数后,容器创建就能登录进去,即分配一个伪终端
--name:为创建的容器命名
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或者文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后会自动登录容器,如果只加-i-t两个参数,创建后就会自动进入容器)
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使多个-p做多个端口映射
容器分类
a.守护式容器 (前台运行) b.交互式容器(后台运行)
交互式容器
docker run -it --name=mycentos centos:7 /bin/bash
-it 进入并且运行容器
--name取容器的名称为mycentos
centos:7 指定启动的版本 注:如果是latest,不要跟着lastest
后面的为交互式命令解释器
守护式容器
docker run -di --name=mycentos centos:7 后台开启容器
进入容器 docker exec -it mycentos /bin/bash
退出还是exit
文件拷贝
首先声明容器和容器中间是无法拷贝的
1.本机linux拷贝文件到容器
docker cp testfile lsfcentos:/usr/local/
testfile在本机根目录创建的文件夹,拷贝到容器lsfcentos冒号后的路径
2.容器拷贝到本机linux
docker cp lsfcentos:/usr/local/testfile /root/
从容器拷贝到本机的root目录下
目录挂载
挂载:在创建容器的时候,将宿主机的目录与容器内的目录进行映射,就可以通过修改宿主机的某个目录的文件从而去影响容器
docker run -di -v /usr/local/myhtml:/usr/local/mh --name=mycentos1 centos:7 --privileged=true
-v 目录挂载命令 冒号之前的为宿主机目录 冒号后的为容器对应的挂载目录
--privileged=true 因为centos7中的安全模块selinux把权限禁掉了,需要添加这个参数解决挂载的目录没有权限的问题
备注:
当然我的centos好像不用加,要根据实际情况判断了
查看容器ip地址和删除镜像
docker inspect lsfcentos 在宿主机目录下查看哦
docker inspect + 容器名称
docker rmi + 镜像的imageId
下面为在容器中安装软件
1.创建mysql容器
docker run -di --name=pinyougou_mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
安装完成后通过navicat连接 使用宿主机的ip,端口33060
问题参考:
docker mysql 为最新,身份验证插件和老版本的可能不兼容,出现2059错误,请参照:
2.创建tomcat容器
docker run -di --name=pinyougou_tomcat -v /usr/local/myhtml:/usr/local/tomcat/webapps --privileged=true -p 9000:8080 tomcat
3.创建nginx容器
docker run -di --name=pinyougou_nginx -p80:80 nginx
设置成功后
4.安装redis
docker run -di --name=pinyougou_redis -p 6379:6379 redis
接下来的厉害了
容器的备份与迁移、保存镜像
docker commit pinyougou_nginx mynginx
将本地的容器保存一份镜像mynginx
保存为镜像导出
docker save -o mynginx.tar mynginx 当然这个mynginx.tar就是给运维的那一份了
恢复
docker load -i mynginx.tar