简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
安装
环境要求:
Ubuntu:系统的内核版本高于 3.10
CentOS 7:系统要求为64位、系统内核版本高于 3.10
检验方法:uname -r
安装:yum -y install docker-io
启动:service docker start
测试:docker run hello-world
使用
以安装mysql为例
1.下载
docker pull mysql/mysql-server
2.创建并运行容器
1)在主机创建挂载路径mkdir -p /docker/mysql/conf /docker/mysql/data /docker/mysql/logs2)创建并运行容器docker run -d -p 3306:3306 --name mysql02 -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=cloud123 mysql/mysql-server指令解释:-d:后台运行-p:指定端口暴露 冒号前:主机端口 冒号后:容器端口-v:挂载路径 冒号前:主机路径 冒号后:容器路径--name:容器名称-e: 指定环境变量,容器中可以使用该环境变量mysql/mysql-server:镜像名称参考地址:https://www.cnblogs.com/yfalcon/p/9044246.html
3.进入容器
docker exec -it mysql02 bash指令解释:-i:让容器的标准输入保持打开-t:分配一个伪终端并绑定到容器上base:进入后支持shell命令mysql02:容器名称
4.容器启动/关闭
启动:docker start mysql02关闭:docker stop mysql02
5.镜像生成
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]OPTIONS说明:-a :提交的镜像作者;-c :使用Dockerfile指令来创建镜像;-m :提交时的说明文字;-p :在commit时,将容器暂停。
6.镜像的保存和使用
两种方法:1.exported-imported 2.saveed-loaded以saveed-loaded为例:保存:docker save mysql02 > /docker/images/mysql02.tar使用:docker load < mysql02.tar镜像改名:docker tag 455f4eee97c6 mysql03exported-imported 和 saveed-loaded的区别:1.前者针对容器 后者针对镜像2.exported-imported会丢失 历史和层(layer)
常用指令
镜像下载:docker pull xxx查看所有镜像:docker images查看所有容器:docker ps -a查看正在运行的容器:docker ps查看容器创建时log:docker logs xxx进入容器:docker exec -it xxxxx bash镜像保存:docker commit xxxx xxxx镜像改名:docker tag xxxx usr-server从主机复制到容器: docker cp host_path containerID:container_path从容器复制到主机: docker cp containerID:container_path host_path
常见问题
解决jdk不能使用 :source /etc/profilebash: xxxxx: Permission denied :chmod 777 xxxxx中文乱码:1./etc/profile 中添加 export LANG=en_ZW.utf82.source /etc/profile时间时区不正确:1.ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime2./etc/profile 中添加 export TZ=Asia/Shanghai3.source /etc/profile
资源汇总
https://www.jianshu.com/p/c2719810819ehttp://www.runoob.com/docker/docker-tutorial.html
小技巧
docker update --restart always 容器名字这样设置就是设置每次docker启动的时候,这个容器就会自启动
