sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
ubuntu下在线安装:[docker安装](https://cloud.tencent.com/developer/beta/article/1632429)
#更新yum到最新版
sudo yum install -y yum-utils
#设置阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fase
#安装docker (或者apt-get)
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动docker
systemctl start docker
# 查看docker运行状态
systemctl status docker
#配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://uv9ip23v.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
麒麟系统使用Linux内核,这也就是说,不少Linux版本的软件可以直接在麒麟系统上进行安装。但Linux也有多种不同的版本,这里就需要先确定所使用的麒麟操作系统版本对应哪个Linux OS。
# 查询指令
uname -a || lsb_release -a || cat /proc/version
使用 cat /proc/version 指令时,可以看到输出的内容中有 “Ubuntu1~16.04.9” 字样,也就是说该麒麟版本与Ubuntu较为接近,可以使用.deb安装包。
docker官网文档: https://docs.docker.com/engine/install/ubuntu/#install-from-a-package
下载地址: https://download.docker.com/linux/ubuntu/dists/
Ubuntu对应版本号与版本名称: https://blog.csdn.net/songfulu/article/details/85310273
选择正确的Ubuntu发行版本,我们刚查询到的对应版本是Ubuntu16.04.9,也就是xenial版本。
/ubuntu/dists/xenial/pool/stable/amd64/ 的路径下,可以找到docker各稳定版的离线安装包。
三类安装包之间存在依赖关系,按如下顺序安装
# 安装容器类服务
dpkg -i containerd.io_XXXXXX.deb
# 安装docker客户端
dpkg -i docker-ce-cli_XXXX.deb
# 安装docker服务端程序
dpkg -i docker-ce_XXXX.deb
安装完成后,启动docker服务
#卸载
sudo yum remove docker-ce docker-ce-cli containerd.io
# 删除docker文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
docker --help
或者
docker [options] --help
docker version
docker info
docker仓库官方地址
docker search 镜像
docker pull 镜像
# 指定版本下载
docker pull mysql:5.7
docker images
docker images [OPTIONS] [REPOSITORY[:TAG]]
--all , -a Show all images (default hides intermediate images)
--digests Show digests
--filter , -f Filter output based on conditions provided
--format Pretty-print images using a Go template
--no-trunc Don't truncate output
--quiet , -q Only show image IDs
# 删除单个镜像
docker rmi -f 镜像ID或者镜像名字
# 删除多个镜像
docker rmi -f 镜像id 镜像id
# 删除所有镜像
docker rmi -f $(docker images -aq)
docker save -o xxx.tar 镜像名称
docker load -i xxx.tar
有了镜像,才能创建容器
# 下载centos镜像
docker pull centos
docker run [参数] image
#参数说明
--name="Name" 容器名字
-d 后台方式运行
-it 指定交互方式运行,进入容器查看内容
-p 指定容器端口 -p 8080:8080 (主机端口:容器端口)
#启动并进入容器目录
docker run -it centos /bin/bash
# 列出正在运行的
docker ps
# -a 列出当前正在运行的容器,带出历史运行过的容器
# -n=? 显示最近创建的容器
# -q 显示运行的容器的编号
docker ps -a
#容器停止并退出
exit
#容器不停止退出
CTRL + p + q
# 删除指定容器,不能删除正在运行的容器,加-f强制停止删除
docker rm 容器id
# 删除所有容器
docker rm -f $(docker ps -aq)
# 删除所有容器
docker ps -a -q|xargs docker rm
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
docker logs [参数] 容器id
# 参数
-tf # 跟随并显示时间戳
--tail number # 要显示的日志条数
# 进入容器后开启新终端
docker exec -it 容器id /bin/bash
# 进入容器正在执行的终端
docker attach 容器id
docker cp 容器id:容器内路径 目的主机路径
docker cp 主机路径 容器id:容器内路径
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag]
实现容器之间的数据共享,docker容器中产生的数据,同步到本地,卷技术通过目录挂载可以将容器内的目录挂载到linux上面。
容器的持久化和同步操作,容器之间也是可以数据共享的。
容器删除后,挂载到本地的数据卷依然不会丢失,实现了容器数据持久化
# 直接使用命令参数来挂载 -v
docker run -it -v 主机目录:容器内目录
# 容器不管是否运行都可同步
docker run -it -v /home/ceshi:/home centos /bin/bash
# 查看镜像元数据
docker inspect 容器id
#查看容器中进程信息
docker top 容器id
# 保存镜像
docker save 镜像名(或镜像ID)> 镜像名(自定义).tar
FROM #基础镜像,从这里开始
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤,tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPORT #保留端口配置
CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRTPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承DockerFile这个时候就会运行ONBUILD的命令
COPY #类似ADD,将我们的文件拷贝到镜像中
ENV #构建的时候设置环境变量
步骤1、2、3、4可以放在dockerfile文件中
# 1、拉取python基础镜像
docker pull python:3.6
# 2、创建、启动容器并进入容器目录,终端输出容器id
docker run -it python:3.6 bin/bash
# 3、安装第三方依赖包,这种方式可以确保第三方库版本的一致性
pip install xxx
# 4、将容器提交为镜像
docker commit -m="创建torch容器" -a="sly" 容器id nlp/torch-py36:latest
# 5、创建dockerfile
FROM nlp/torch-py36:latest
COPY . /home
WORKDIR /home
#安装第三方依赖
#RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
ENTRYPOINT ["python"]
CMD ["app/app.py"] #根据工程目录结构指定路径,home为工程根目录
# 6、创建镜像,在dockerfile和工程所在目录
# --network="host" 解决dockerfile中安装库无法连网的问题
docker build (--network="host") -t rel-extract:latest .
# 7、后台模式启动容器
docker run -d -p 5000:5000 rel-extract:latest
Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。
1、运行以下命令以下载 Docker Compose 的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装其他版本的 Compose,请替换 v2.2.2。
2、将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
3、创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4、测试是否安装成功:
docker-compose --version
官方文档:https://www.runoob.com/docker/docker-compose.html