如果你是Win10 64位系统,那么推荐使用Docker for Windows,直接从Docker官方网站下载最新的Docker for Windows安装包即可,https://docs.docker.com/docker-for-windows/install/
如果不是Win10 64位系统,则可以下载Docker Toolbox,https://docs.docker.com/toolbox/toolbox_install_windows/。
安装包下载之后直接双击安装即可,安装详细过程可以参考文档说明,安装完成之后,进入命令行。
详细的分步骤的安装说明可以参见官方文档,https://docs.docker.com/engine/installation/linux/ubuntu/。
在官方文档中详细说明了不同Linux系统的安装方法,安装流程根据文档一步步执行即可安装成功。
但是为了使得安装更加方便,Docker官方还提供了一键安装脚本,使用它会使得安装更加便捷,不用再去一步步执行命令安装了,在此介绍一下一键脚本安装方式。
首先是Docker官方提供的安装脚本,相比其他脚本,官方提供的一定更靠谱,安装命令如下:
curl -sSL https://get.docker.com/ | sh
只要执行如上一条命令,等待一会儿Docker便会安装完成,非常方便。
但是官方脚本安装有一个缺点,那就是慢,也可能下载超时,所以为了加快下载速度,我们可以使用国内的镜像来安装,所以在这里还有DaoCloud的安装脚本。
DaoCloud安装脚本:
curl -sSL https://get.daocloud.io/docker | sh
Mac平台同样有两种选择,Docker for Mac和Docker Toolbox。
Docker for Mac要求系统为OS X EI Captain 10.11或更新,至少4GB内存,如果你的系统满足此要求,则强烈建议安装Docker for Mac。
可以使用HomeBrew安装,安装命令如下:
brew cask install docker
另外也可以手动下载安装包安装,安装包下载地址为:https://download.docker.com/mac/stable/Docker.dmg
下载完成之后直接双击安装包,然后将程序拖动到应用程序中即可。
点击程序图标运行Docker,会发现在菜单栏中出现了Docker的图标
在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
]
}
sduo systemctl restart docker
安装好Docker之后,在运行测试命令时,我们会发现它首先会下载一个Hello World的镜像,然后将其运行,但是下载速度有时候会非常慢,这是因为它默认还是从国外的Docker Hub下载的,所以为了提高镜像的下载速度,我们还可以使用国内镜像来加速下载,所以这就有了Docker加速器一说。
推荐的Docker加速器有DaoCloud。
DaoCloud:https://www.daocloud.io/mirror
不同平台的镜像加速方法配置可以参考DaoCloud的官方文档:http://guide.daocloud.io/dcs/daocloud-9153151.html。
配置完成之后,可以发现镜像的下载速度会快非常多。
mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf
data目录将映射为mysql容器配置的数据文件存放路径
logs目录将映射为mysql容器的日志目录
conf目录里的配置文件将映射为mysql容器的配置文件
任选其一
# 阿里云镜像
docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7
#带版本号的mysql服务
docker pull mysql/mysql-server:5.7
#不带版本号的mysql服务
docker pull mysql/mysql-server
#拉取最新版本,可以不加latest
docker pull mysql:latest
docker run -p 3308:3306 -m 300m --name wordpress-sql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5
docker pull wordpress:latest
docker run --name blog-wordpress --link wordpress-sql:mysql -e 500m -p 8083:80 -v /root/wordpress-html:/var/www/html -d wordpress
docker run --name wordpress-sql -e WORDPRESS_DB_HOST=10.1.2.3:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -d wordpress
WORDPRESS_DB_HOST参数是MySQL的数据库端口号,WORDPRESS_DB_USER是要数据库用户名,WORDPRESS_DB_PASSWORD是数据库密码。这里的WORDPRESS_DB_HOST参数不能填写localhost,因为这样会重定向到WordPress镜像内部的localhost,而这个镜像中实际上没有安装MySQL。所以这里需要填写本机IP地址,才能正确访问到Docker外部的本机的数据库。
因此需要注意,如果使用外部数据库的话,数据库的用户需要具有外部IP的权限,因为这次不是通过本机回环地址访问。默认情况下MySQL安装时候的ROOT用户只允许本地登录,所以可能需要配置允许用户远程登录。
docker images
docker create -it mysql:5.7
# 构建容器
docker build -t 镜像名称 . # 后面的. 指的是当前文件夹 (其实是Dockerfile存放的文件夹)
# 建立映像文件。–rm 选项是告诉Docker,在构建完成后删除临时的Container,Dockerfile的每一行指令都会创建一个临时的Container,一般这些临时生成的Container是不需要的
docker build --rm=true -t loen/lamp .
# 关闭运行中的容器
docker stop 容器ID
# 启动一个已经停止的容器
docker start 容器ID
# 重启一个容器
docker restart 容器ID
# 进入一个运行中的容器
docker attach 容器ID
# 删除容器
docker rm 容器ID
# 删除所有容器
docker rm $(docker ps -a)
# 删除所有镜像
docker rmi $(docker images | grep -v RESPOSITORY | awk '{print $3}')
# 显示全部容器
docker ps -a
# 显示当前运行的容器
docker ps
# 导出容器
docker export 容器ID > xxx.tar
# 把 mynewimage 镜像保存成 tar 文件
docker save myimage | bzip2 -9 -c> /home/save.tar.bz2
# 加载 myimage 镜像
bzip2 -d -c < /home/save.tar.bz2 | docker load