Docker 的安装和使用
安装 dcoker
ubuntu 16.04 (LTS) 安装 docker
参考官网安装方法 https://docs.docker.com/engine/install/ubuntu/
卸载旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc |
镜像仓库方式安装
设置镜像仓库
# 更新 apt 软件包索引: |
使用国内源
# 更换国内软件源,推荐中国科技大学的源 |
安装 DOCKER CE
$ sudo apt-get update |
# 安装指定版本 |
启动 docker daemon
否则会报错:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See ‘docker run –help’.
$ sudo service docker start |
验证是否正确安装
$ sudo docker run hello-world |
此命令将下载一个测试镜像并在容器中运行它。容器运行时,它将输出一条参考消息并退出
升级 docker ce
如需升级 Docker CE,首先运行 sudo apt-get update
,然后按照顺序执行操作,并选择您要安装的新版本
卸载 docker ce
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io |
主机上的镜像、容器、存储卷、或定制配置文件不会自动删除。如需删除所有镜像、容器和存储卷,请运行下列命令:
$ sudo rm -rf /var/lib/docker |
将 docker 配置为在启动时启动
使用脚本安装
curl -sSL https://get.docker.com/ | sh |
国内的服务器可以使用如下脚本加速安装,
# 阿里云的安装脚本 |
centos 安装 docker
参考官网安装方法 https://docs.docker.com/engine/install/centos/
卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker \ |
安装需要的软件包, yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的
$ sudo yum install -y yum-utils |
设置 yum 源
$ sudo yum-config-manager \ |
安装
$ sudo yum install docker-ce |
卸载
$ sudo yum remove docker-ce docker-ce-cli containerd.io |
常见问题
# 报错:Requires: container-selinux >= 2:2.74 |
# Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. |
使用 docker
配置镜像加速
修改 docker 源
修改配置文件 /etc/docker/daemon.json
(Linux) 或者 %programdata%\docker\config\daemon.json
(Window)
如果没有新建一个
{ |
重启 docker
安装镜像
安装 Ubuntu 镜像
docker search ubuntu # 查找 Ubuntu 镜像 |
备份镜像
# 制作 docker 镜像 1.0 为版本号 |
恢复容器
# 从docker账号中拉取 |
docker 给已存在的容器添加或修改端口映射
方式 1:
提交一个运行中的容器为镜像
$ docker commit containerid foo/live |
运行镜像并添加端口
$ docker run -d -p 8000:80 foo/live /bin/bash |
方式 2:iptable 转发端口
将容器的 8000 端口映射到 docker 主机的 8001 端口
$ iptables -t nat -A DOCKER -p tcp --dport 5001 -j DNAT --to-destination 45.77.150.20:8000 |
docker 容器使用问题
Centos7 docker 容器报 docker Failed to get D-Bus connection 错误
$ systemctl start nginx |
原因是 dbus-daemon 没能启动
解决方法
docker run -it -d --name ubuntu_test -p 8088:80 ubuntu |
ssh 链接 docker 容器
进入容器
安装依赖
yum install passwd openssl openssh-server openssh-clients -y |
安装 service 命令:
yum install initscripts -y |
修改密码:
passwd |
修改配置:
vi /etc/ssh/sshd_config
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
PermitRootLogin yes #root 能使用 ssh 登录
重启 ssh 服务,并设置开机启动:
service sshd restartchkconfig sshd on |
如果无法执行,可试着执行:
systemctl start sshd.service systemctl enable sshd.service |
运行 docker exec -it 容器 /bin/bash 出现如下错误
OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown |
解决方式:尝试使用如下命令
sudo docker exec -it 容器 /bin/sh |
docker-compose
如果你想要通过 docker-compose 统一管理你的 Docker container,这里也可以安装一下
官方文档:https://docs.docker.com/compose/install/
sudo curl -L https://github.com/docker/compose/releases/download/1.26.2/run.sh > /usr/local/bin/docker-compose |
使用 pip 安装
pip install docker-compose |
运行一下 docker-compose version
来检测一下是否成功
创建配置文件
创建一个名为 docker-compose.yml
的配置文件
version: '3' |
命令
以下命令需要在 docker-compose.yml 所在目录下执行
docker-compose up -d # 部署 v2ray |