# docker
一、简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
二、安装
# Centos 7 yum install -y docker #启动 /etc/init.d/docker start
三、日常操作
#a、下载镜像 docker pull centos #b、查看本地镜像 docker images # 从docker仓库搜索docker镜像 docker search centos # 启动一个容器 docker run -it centos /bin/bash #退出容器,关闭容器 exit # 退出容器,不关闭 Ctrl+d # 查看正在运行的容器,-a 停止的容器也显示 docker ps -a # 停止容易 docker stop 容器id # 登录一个容器 docker exec -it 容器id /bin/bash # 删除一个容器 docker rm 容器id # 保存一个容器镜像 docker commit -m "说明信息" -a '作者信息' 容器id gary234:latest # 创建容器直接启动 docker run -itd centos bash 下载镜像地址 http://download.openvz.org/template/precreated/centos-6-x86_64.tar.gz
四、磁盘数据管理
-- 特别注意要关闭selinux权限,不然没有权限修改目录,
启动一个容器,挂载机器的目录到Docker容器的一个目录中
docker run -itd -v /data/:/data/ centos bash
在启动一个容器,共享上一个docker容器的目录,实现两台docker容器数据共享
docker run -itd --volumes-from big_shirley centos bash # big_shirley容器名称,最后一个字段 # centos 镜像名
五、将物体机器端口映射到docker容器
docker run -p 5123:80 -itd gary_centos bash # 多端口映射 docker run -itd -p 123-155:123:155 gary_centos bash
六、备份容器和镜像
备份镜像
docker save -o mysql.tar mysql # mysql.tar 保存的文件 # mysql 镜像名称
导出容器
docker export 7e8a0dc1cb88 > mysql.tar
恢复镜像
cat mysql.tar | docker import - mysql:latest
七、docker桥接网络( 桥接操作会断开暂时端口网络,建议写成脚本 运行 或者 在虚拟机内操作)
7.1 Centos 7
# 停止docker服务器 systemctl stop docker # 使用ifconfig查看docker是否有网卡,如果有网卡就先删除 ip link set dev docker0 down brctl delbr docker0 ## brctl要安装 # 新建桥接虚拟网卡br0 brctl addbr br0 ip link set dev br0 up ip addr add 192.168.1.210/24 dev br0 #为br0分配宿主机的ip地址 ip addr del 192.168.184.123/24 dev ens0 #清空宿主机的Ip地址 brctl addif br0 ens0 # 将宿主机网卡挂到br0上 ip route add default via 192.168.1.1 dev br0 #为br0设置路由 # 修改docker配置文件,Centos7的在/etc/sysconfig/docker,其他服务器到这个网址找 https://docs.docker.com/installation/#installation vim /etc/sysconfig/docker #在OPTIONS='--selinux-enabled'这行中修改为OPTIONS='--selinux-enabled -b=br0'即让docker服务启动时使用br0网卡进行桥接 #启动docker systemctl start docker # 下载 pipework 命令,进行桥接 git clone https://github.com/jpetazzo/pipework cp pipework/pipework /usr/local/bin/ # 启动一个无网络的docker容器 docker run -itd --net=none --name=gar123 centos bash # 桥接 192.168.1.211 容器IP,192.168.1.210 宿主机IP pipework br0 gar123 192.168.1.211/24@192.168.1.210 ### 到这里也就完成了容器桥接,可以通过其他机器直接访问docker容器 # 安装sshd服务 ## 安装软件 yum -y install openssh-server ## 生成启动sshd服务器需要的密钥文件 ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_ecdsa_key ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_ed25519_key ## 启动sshd服务器 /usr/sbin/sshd
重要:dockerfile创建redis容器
############## # DockerFile ############## from centos MAINTAINER gary hpgary@qq.com RUN yum install -y gcc make openssl-devel automake make ADD redis /opt/soft/redis WORKDIR /opt/soft/redis RUN tar xvzf redis-3.2.8.tar.gz WORKDIR redis-3.2.8 # 安装redis RUN make #RUN make PREFIX=/usr/local/redis install RUN make install RUN cp redis.conf /etc/ RUN sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf EXPOSE 6379 ENTRYPOINT ["redis-server"] #CMD "/usr/local/redis/bin/redis-server" "/etc/redis.conf"
运行dockerfile
docker build -t gary_centos /usr/local/sbin/docker/
启动容器
docker run -d -p 3004:6379 hp --bind 0.0.0.0
相关推荐
云原生培训-Docker&podman原厂培训PPT: Docker是什么 Docker基本概念 Docker常用命令实战 DockerFile指令 Docker核心技术 Docker案例实战
包括emqx的dockerFile和配置文件,只需要按步骤执行两条命令就可迅速部署emqx。 步骤: 1.解压 ,配置emqx_auth_redis.conf中redis连接地址 2.进入解压目录,执行docker build . 得到镜像 3.执行 docker run --name ...
2.在解压得到的目录下执行docker build . 得到镜像 3.执行docker run --name redis -p 30379:30379 -d b6954e42b430 redis-server myredis.conf 服务就启动成功啦!!! 4.连接redis,机器ip:30379 密码rdsCqXMuD1...
Docker Dockerfile安装mysql-5.7.29-linux,同时指定mysql 初始密码
Docker Dockerfile文件配置详解
Dockerfile 组成结构、编写规范、注意事项、常用命令 及Docker-compose yml详解
docker-redis-cluster, 适用于Redis集群的Dockerfile ( 3.0 ) docker-redis-cluster 从源代码构建并安装redis的Docker 映像。这个容器的主要用途是测试redis集群代码。 例如在 ...
Docker使用实战 一、 Docker相关概念 二、 Docker安装 三、 Docker常用命令 四、 Dockerfile编写 五、 部署私有Docker registry 六、 常用镜像
高码头工人 更高的docker&k8s
自动构建阿里云源的Ubuntu_14.04的docker基础镜像Dockerfile_docker-ubuntu
my first docker << endl; return 0; } 例如我是在我的home路径下建立一个DockerFile/hello-world目录,里面新建一个hello-world.cpp源文件。 二、编写DockerFile文件 该文件和源文件在一个文件夹下,...
docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建的,顶层仓库由docker内部的人来管理的。仓库里存放的是镜像文件,...
hadoop-docker DockerFile 用于 docker 上的分布式 hadoop 集群(测试目的)
通过Dockerfile安装javaWeb项目,包括jdk、redis、nginx、supervisor和项目jar
Docker简介+使用入门Docker 命令行 定义应用——Dockerfile 项目发布——Docker-compose Docker provides a way to run applications securely isolated in a container, packaged with all its dependencies and ...
docker+dockerfile+dockercomponse
从公共Docker Hub Registry下载自动构建版本docker pull dockerfile/redis(或者,您可以从 Dockerfile 构建映像docker build -t="dockerfile/redis" github.com/dockerfile/redis)用法跑步redis-serverdocker run ...
docker nginx静态网站示例,docker Dockerfile方式build docker镜像,启动nginx容器
docker docker视频教程 资料 Docker快速上手教程思维导图.html 13.9MB 31_Docker私有仓库.mp4 59.2MB 30_DockerFile之ONBUILD.mp4 29.1MB 29_DockerFile之CMD, ENTRYPOINT 的区别和联系.mp4 85.8MB 28_...
该项目展示了如何使用 Docker 和 Docker Compose 来配置和运行一个简单的 Flask 应用程序。通过 Dockerfile 定义应用程序的容器环境,并使用 Docker Compose 来简化多容器应用的管理。希望这些内容对你有所帮助。