Docker简介及使用
docker简介
简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。更具体的说明请移步社区链接。
应用场景
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
社区链接
官网:https://www.docker.com/
官方教程:https://docs.docker.com/get-started
中文社区:http://www.docker.org.cn/
镜像下载
Docker提供了一个类似Github的开源平台,提供开源镜像,基本的系统镜像及通用软件均可在这里下载。
链接:https://hub.docker.com/
docker安装
个人电脑是ubuntu系统,命令安装即可,其他系统没试过。
sudo apt-get install docker
sudo apt-get install docker.io
安装完成可以输入以下命令确认
docker --version
docker使用(mysql为例)
(注意:docker和容器镜像相关的命令要加sudo执行。帮助命令:docker [command] --help)
- 下载mysql镜像
在hub.docker上搜索mysql并进入mysql,然后点击TAG切换至标签页,查看需要的版本,例如我需要5.7,则在终端执行下面的命令进行下载。
sudo docker pull mysql:5.7
其中,mysql是镜像名称,后面是的TAG是版本号,如果不说明版本号(sudo docker pull mysql),如果不设置标签的话会默认下载最新的版本(mysql:laster)。
- 查看docker镜像
在终端执行下面的命令可查看当前系统下存在的docker镜像。
sudo docker images
- 删除docker镜像
如果要删除不需要的镜像,在终端执行下面的命令即可,其中image id可以通过查看镜像的命令获取。
sudo docker rmi [image id]
- 创建并启动容器
用mysql镜像创建容器并启用,在终端执行以下命令(具体参数:docker run --help)。
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
-
命令说明
-
–name:容器名称(貌似不可和镜像同名)。
-e:设置环境变量,这里设置mysql的root密码。
-p:映射端口,将docker的3306端口映射至物理机3306端口。
-d:在后台运行容器并打印容器id。
mysql:5.7:镜像名称及TAG。
执行完以上命令,mysql容器就已经启用了,可以用sql工具去连接docker中的mysql容器进行验证。
- 容器开机启动
如果需要在容器开机自启动,则需要在上面的命令中加入–restart=always。
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 --restart=always -d mysql:5.7
- 映射本机文件
修改频繁的数据可以放在本地,然后通过-v命令从容器映射出来,比如mysql的data文件。
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v -v /home/$USER/Mysql_5.7_Docker/data:/var/lib/mysql --restart=always -d mysql:5.7
- 查看容器
查看容器及状态,在终端执行以下命令(具体参数:docker ps --help)。
sudo docker ps
- 停止容器
停止正在运行的容器,在终端执行以下命令,其中container id通过查看容器的命令可获取。
sudo docker stop [container id]
- 启动容器
停止正在运行的容器,在终端执行以下命令,其中container id通过查看容器的命令可获取。
sudo docker start [container id]
- 删除容器
删除容器前如果容器正在运行,请先停止容器,再执行以下命令。
sudo docker rm [containe id]
- 进入容器
如果需要在容器中执行某些操作,则需要进入容器,在终端执行以下命令可进入容器。
sudo docker exec -it [containe id] /bin/bash
- 拷贝本地文件至容器
如果需要把本地文件拷贝至容器中,在终端执行以下命令。
sudo docker cp ~/test.sql mysql:/tmp/
end
入门快速上手贴,有问题的地方请指正。更详细的操作请移步本文社区链接。