Docker安装与操作
一、docker安装
-
Linux服务器安装的centos的系统内核不能低于3.10,否则安装不成功。可以通过一下命令查看系统内核
uname -r # 4.18.0-147.5.1.el8_1.x86_64
-
删除原有安装残留
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
-
创建阿里云镜像,目的是优先从阿里云获取镜像,加快docker的镜像拉取
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 若出现yum-config-manager: command not found 则安装 yum -y install yum-utils
-
安装docker
sudo yum -y install docker-ce
-
查看docker版本
docker version
-
查看帮助
docker --help # Usage: docker [OPTIONS] COMMAND
-
启动docker
# 出现 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? systemctl start docker
-
获取并启动第一个docker应用hello-world
docker run hello-world
二、docker基本操作
-
搜索仓库镜像
docker search 镜像名 docker search centos
-
运行容器
docker run 镜像名称
-
查看所有镜像
docker images # REPOSITORY TAG IMAGE ID CREATED SIZE # hello-world latest d1165f221234 4 months ago 13.3kB
-
查看运行中的容器
docker ps
-
删除镜像
docker rmi 镜像名称或镜像ID
-
删除容器
docker rm 容器名称
三、实战简单应用
-
项目目录
. ├── Dockerfile ├── requirements.txt └── test_project └── app.py 1 directory, 3 files
-
编写app.py文件
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return "Hello World!" if __name__ == "__main__": app.run(host="0.0.0.0", port=5001)
-
生成python依赖文件requirements.txt文件
flask==1.1.2
-
编写Dockerfile文件
FROM python:3.7 COPY requirements.txt /requirements.txt RUN pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com COPY ./test_project /test_project WORKDIR /test_project CMD ["python3", "app.py"]
-
创建镜像(在Dockerfile同级目录下执行)
docker build -t flask_test:v1 . docker images
-
运行镜像
# 运行镜像并将容器端口映射到外网端口(需要centos开放该端口外网访问)-d为后台运行 docker run -d -p 5001:5001 flask_test:v1
-
外网浏览器访问 http://外网IP:5001/
-
查看正在运行的容器
docker ps
-
停止容器运行
docker stop flask_test:v1
-
启动已经停止运行的容器
docker start flask_test:v1
-
删除容器
docker rm flask_test:v1
-
删除镜像
docker rmi flask_test:v1
四、稳定部署 flask + uwsgi + nginx
待更新…