文章目录
一、Linux上安装docker
0 前置工作
环境准备:
- 操作系统:CentOS 7
- 支持的CPU:ARM/X86_64
卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
卸载历史版本
删除机器上的包
sudo yum remove docker-ce docker-ce-cli containerd.io dockerbuildx-plugin docker-compose-plugin docker-ce-rootless-extras
执行卸载
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /data/var/lib/docker
sudo rm -rf /etc/docker/daemon.json
1.1 配置仓库
安装 config-manager 命令,配置仓库的工具所在工具包
sudo yum install -y yum-utils
配置 repo
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
把 /etc/yum.repos.d/docker-ce.repo 里的 gpgkey 替换成国内(中科大)镜像源
sudo sed -i 's@//download.docker.com@//mirrors.ustc.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo
1.2 安装 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io dockerbuildx-plugin docker-compose-plugin
1.3 验证
配置加载
sudo systemctl daemon-reload
启动服务
sudo systemctl start docker
开启启动(视需求添加)
sudo systemctl enable docker
查看服务状态
sudo systemctl status docker
运行 docker
sudo docker run hello-world
出现 Hello from Docker! 字样说明运行成功
1.4 可选操作
Docker 镜像源修改
目的:加速 docker 镜像源访问
- 为 docker 配置文件的存放创建一个目录
mkdir /etc/docker
- 进入该目录下,创建一个 docker 引擎的配置文件
vim deamon.json
- 在配置文件中添加以下字样
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
- 修改完成后,加载配置
systemctl daemon-reload
- 重启服务
systemctl restart docker
完成上述步骤,运行 docker info 就可以看见 Registry Mirrors: 的字样下,出现的是我们刚设置的三个镜像源
Docker 数据目录修改
在 docker info 中可以看到原来的数据目录位置: /var/lib/docker,
假定我们的大磁盘目录为 /data,我们自己建的目录,就保持默认的保持一样吧~
- 建立目录
mkdir /data/var/lib/docker -p
- 打开 /etc/docker/daemon.json 配置文件
vim /etc/docker/daemon.json
- 在 Json 块中加入以下内容,不要忘记检查和保持 Json 的格式
"data-root": "/data/var/lib/docker"
- 同样的,修改完成后,加载配置
systemctl daemon-reload
- 重启服务
systemctl restart docker
然后就可以在 docker info 中看到修改后的结果
运行开发环境压缩包
查看 docker 容器,-a
查看所有包括未运行。
#查看容器
sudo docker ps
sudo docker ps -a
# 查看镜像
sudo docker images
rz
将压缩包传到 linux 机器,docker load
对.tar环境包进行加载。
# 方法一
sudo docker load --input /压缩包位置
# 方法二
sudo docker load -i /压缩包位置
# 方法三
sudo docker load < /压缩包位置
run
和 exec
都可以进入容器:
- run 从镜像中创建并进入一个容器,可以同时运行命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG…] - exec 进入已经打开的容器,可以同时运行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG…] - attach 进入已经打开的容器(除了不能运行命令,功能和exec一样)
docker attach [OPTIONS] CONTAINER - 区别:
- run 可以创建容器。
- 当使用容器结束后输入
exit
退出,以 exec 方式进入的只是退出容器终端,但不会导致容器的停止,需要重新进入的时候只需要使用docker attach [OPTIONS] CONTAINER
。 - 而 run 方式进入的在 exit 命令后会直接退出,需要使用
docker restart [OPTIONS] CONTAINER [CONTAINER...]
将其开启,再 attach 连接。 - 或者在 run 命令后加一个选项
--restart=always
也可以保证不直接退出。
在这个案例中,我们用 run 创建一个由 cppubuntu:2.0 镜像生成的名为 tsqBoost 的容器,并进入,其中 /root/LocalDir(会自动在本地生成文件夹) 为容器中 /ContainerDir 的本地仓库,两边有相同的沙箱环境,都可以操作会自动同步(就像一个简单版的git本地仓库和git仓库,的关系)。
- -p: 可以指定映射端口,选个不常用的即可
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
- -d: 让容器在后台运行
docker run -it --name tsqBoost -v /root/LocalDir:/ContainerDir -p 8015:22 cppubuntu:2.0
对正在使用中的已有的容器使用 sudo docker ps
可以查看,按如下命令敲入容器 id 或容器名,也可以进入该容器。
docker exec -it e061224769fe /bin/bash