最近项目需要使用了Docker,结果在使用了之后就停不下来。 Docker对于自动化部署来说真真太方便了。
简而言之,docker是一个用于开发、分发和测试、生产的平台。它最大的优势在于:能够迅速自动化的部署开发的应用。Docker相当于在宿主机上虚拟出了N个独立的应用运行环境,每个应用的环境都是独立的,每个应用也是独立的。
从上图可以看出,Docker的主要包括:
images是Docker中重要的概念之一,相当于Windows的ISO镜像,可以用于安装Windows系统。
比如:docker pull ubuntu
相当于拉取一个ubuntu系统的镜像到本地。可以通过命令行执行’‘docker images’‘查看本地拥有哪些镜像。
container也是Docker中重要的概念之一,相当于安装好了的Windows系统,可以start、pause、stop、restart。比如:docker run ubuntu
相当于安装并启动一个ubuntu系统。通过命令行执行’‘docker ps -a’‘查看所有的容器。
这两个概念在开始的时候不好理解,但是以操作系统的ISO镜像和操作系统去类比会好理解得多。
docker在Ubuntu系统中的安装比较简单,只需要执行下面的命令即可:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
当看到如下输出:
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
即表示安装成功了。
常用命令:
如果对命令有疑问可以通过docker --help
命令查看命令的使用。
新建目录test/,然后新建Dockerfile文件,内容如下:
FROM ubuntu:18.04
WORKDIR /code
#RUN 执行命令
RUN apt update --yes && apt upgrade --yes
# 安装python
RUN apt-get install python-dev --yes
COPY . .
# 执行web.py
CMD ["python","web.py"]
web.py文件中写入如下内容:
print('hello')
docker built -t test .
可以看到输出:
Step 17/18 : COPY . .
---> 1ba374f5a1d2
Step 18/18 : CMD ["python","web.py"]
---> Running in 365d4b7fd252
Removing intermediate container 365d4b7fd252
---> 5403a172511d
Successfully built 5403a172511d
Successfully tagged test:latest
表示成功新建了镜像。
$ sudo docker run test
hello
可以看到hello
就是容器的输出,表明容器新建成功。