docker搭建及使用、常用问题总结

前言

安装资料

参考资料:Docker 教程
参考资料:Centos7下安装Docker
参考资料:Docker 国内仓库和镜像

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

但是我选择的是
DaoCloud – 企业级云计算领域的创新领导者

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。
适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,
其他版本可能有细微不同。更多详情请访问文档。
最后重启下docker就OK了,重启命令:systemctl restart docker

【docker】离线环境导入镜像

首先,需求是在一个无外网环境中导入 docker images,
一个可行的方法是将可用的镜像打包成 tar 包,然后传输到需要的地方,
再重新将 tar 包导入到 docker 中。
镜像转文件的命令是: docker save image > /root/image.tar
文件转镜像的命令是: docker load < /root/image.tar 或者 docker load -i /root/image.tar

坑 1 是:  requested load from stdin, but stdin is empty
结论 : docker load 的时候, < 误写成 >, 会出现这个错误,
并且原 tar 包会被修改,修改后就不可用了
坑 2 是: open /var/lib/docker/tmp/docker-import-054903443/repositories: no such file or directory
结论 : 如果你使用过坑 1 中的命令,那么即使你之后的命令都是正确的,
你也会遇到上述错误,避免的办法是不要输错命令。
倘若你已经输错了,那么唯一可用的方法是删除当前的 tar 包,
并且重新获取 tar 包,如果不是就地编译的 tar 包,
而是其他地方复制过来的,那么原 tar 包还是可用的。

常用命令

启动 Docker 后台服务

systemctl start docker

查看当前正在运行的容器

docker ps

查看所有容器的状态

docker ps -a

启动/停止某个容器(该容器已经存在)

docker start/stop id/name

进入某个容器(使用exit退出后容器也跟着停止运行)

docker attach id

启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)

docker exec -ti id
docker exec -it 942c2253509c /bin/bash

查看本地镜像

docker images

删除某个容器

docker rm id/name

删除某个镜像

docker rmi id/name

复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash

docker run --name test -ti ubuntu /bin/bash

通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像

docker build -t soar/centos:7.1

以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变

docker run -d -p 2222:22 --name test soar/centos:7.1

看下本机正在运⾏的容器

docker container ls -all

你可能感兴趣的:(lnmp环境搭建)