Docker
一、docker-compose安装
1、步骤
Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。
运行以下命令以下载 Docker Compose 的当前稳定版本:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose要安装其他版本的 Compose,请替换 1.24.1。
将可执行权限应用于二进制文件:
$ sudo chmod +x /usr/local/bin/docker-compose创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose测试是否安装成功:
$ docker-compose --version
cker-compose version 1.24.1, build 4667896b注意: 对于 alpine,需要以下依赖包: py-pip,python-dev,libffi-dev,openssl-dev,gcc,libc-dev,和 make。

2、基本使用
上述命令会执行如下几个动作:
关闭正在运行的容器
删除所有相关容器
移除NAT(docker-compose在运行的时候会创建一个NAT网段)
二、docker安装
1、使用官方安装脚本自动安装
安装命令如下:
也可以使用国内 daocloud 一键安装命令:
2、手动安装
卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:
当前称为 Docker Engine-Community 软件包 docker-ce 。
安装 Docker Engine-Community,以下介绍两种方式。
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker 。
设置仓库
更新 apt 包索引。
安装 apt 依赖包,用于通过HTTPS来获取仓库:
添加 Docker 的官方 GPG 密钥:
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
使用以下指令设置稳定版仓库
安装 Docker Engine-Community
更新 apt 包索引。
安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出您的仓库中可用的版本:
使用第二列中的版本字符串安装特定版本,例如 5:18.09.1~3-0~ubuntu-xenial。
测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功:
3、使用 Shell 脚本进行安装
Docker 在 get.docker.com 和 test.docker.com 上提供了方便脚本,用于将快速安装 Docker Engine-Community 的边缘版本和测试版本。脚本的源代码在 docker-install 仓库中。 不建议在生产环境中使用这些脚本,在使用它们之前,您应该了解潜在的风险:
脚本需要运行 root 或具有 sudo 特权。因此,在运行脚本之前,应仔细检查和审核脚本。
这些脚本尝试检测 Linux 发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从 Docker 的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。这可能会安装大量软件包,具体取决于主机的当前配置。
该脚本未提供用于指定要安装哪个版本的 Docker 的选项,而是安装了在 edge 通道中发布的最新版本。
如果已使用其他机制将 Docker 安装在主机上,请不要使用便捷脚本。
本示例使用 get.docker.com 上的脚本在 Linux 上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用 test.docker.com。在下面的每个命令,取代每次出现 get 用 test。
如果要使用 Docker 作为非 root 用户,则应考虑使用类似以下方式将用户添加到 docker 组:
三、docker简单使用
安装
启动docker服务
常用命令:
释义
命令
搜索镜像
docker search keyword
下载镜像
docker pull image_name:version
查看本地所有镜像
docker images
查看所有运行中容器
docker ps
查看所有容器
docker ps -a
启动一个容器
docker run --name=rand_name -it -d image_name sh
进入一个容器
docker exec 容器id bash
以root的方式进入容器
docker exec -u root -it 容器id bash
暂停一个容器
docker stop 容器id
移除一个容器
docker rm 容器id
移除一个镜像
docker rmi 镜像id
批量停止容器
docker stop $(docker ps -q)
批量移除容器
docker rm `docker ps -a -q`
批量移除镜像
docker rmi `docker images -q`
docker 启动一个容器
docker 容器封装成镜像
docker打包
docker更换下载源
docker封装cms的基本思路
1.下载一个LAMP环境(不一定是LAMP根据实际情况pull)
2 启动环境(根据实际情况选择参数,镜像id通过docker image 查看)
3.进入容器(docker ps 查看容器id)
4.切换到web路径,使用wegt命令将cms添加的docker容器中,也可在第二步中直接挂在进去
5.cms的正常安装
6.退出容器,并暂停容器
7.将容器封装为镜像,如果有本地挂载,同时保存一份本地挂载的文件,以便复现时导入
8. 将容器镜像打包
dockerfile封装CMS基本思路
1、编写Dockerfile
2、运行命令封装为镜像
示例:
四、常见问题
1、docker pull的时候出错
步骤如下:
1、编辑 /etc/resolv.conf 文件,在文件中添加如下内容:

2、保存并推出,之后重启docker服务
2、docker pull: "No address associated with hostname"
解决方案如下:(参考链接)
重启网络与docker

3、docker的daemon.json
4、dockerfile优化
5、部分vulhub环境不可用
原因如下: 1、由于docker-compose的时候没有添加MySQL等数据库镜像,导致CMS不能正常运行 2、Dockerfile中只有引入PHP+Apache镜像,没有在其中安装MySQL
临时解决方案: 1、在docker-compose.yml文件中添加MySQL数据库,如下
6、docker-compose.yml中的MySQL
最后更新于
这有帮助吗?