首页 > 云计算 > > Docker 日常使用笔记
从小白开始,在摸索实践的过程中有过不少困惑,蹚了许多坑, 更多的是惊喜。就像我同事说的,这只小鲸鱼还挺好玩。
什么是Docker --- 这篇文章挺通俗易懂的,动手操作几次之后就能理解文中的内容。
慕课网:为什么需要Docker?
Docker入门操作 --- 个人推荐下面这篇文章,较为全面的覆盖了入门操作

Docker 官方手册 ---
| Docker Documentation
下文的演示基于Mac系统
内容: 从Dockerfile开始,建立一个image,然后启动一个container。
目的:在container里面安装Ubuntu系统,python3,以及pandas 0.24.2包。
步骤一:
命名工作文件夹‘case1’, 新建Dockerfile文件


Dockerfile文件本质上是一个txt文档,文件名严格是‘Dockerfile’, 文件内容如下。
FROM ubuntu:18.04
# Install python3
RUN apt-get update \
&& apt-get install -y python3-pip\
python3\
&& cd /usr/local/bin \
&& ln -s -f /usr/bin/python3 python \
&& pip3 install --upgrade pip
# Install packages
RUN pip3 install pandas==0.24.2更多Dockerfile命令(COPY, ADD, ENV, ENTRYPOINT ...)的官方手册:
| Docker Documentation
步骤二:
显示当前已经存在的image
>>> docker images
新建image, 命名为myimage, tag 是0.0
>>> docker build . -t myimage:0.0确认 myimage:0.0 创建完毕
>>> docker images
步骤三:
从刚新建的myimage:0.0 启动一个container,命名为mycontainer
>>> docker run -it --name mycontainer myimage:0.0
确认mycontainer里面 pandas 已经装好,而且版本是0.24.2
>>> python -c "import pandas; print(pandas._version__)"
步骤四:
退出mycontainer,并且保持mycontainer在后台运行
>>> ctrl+p ctrl+q确认mycontainer是active状态
>>> docker ps -a
重新进入mycontainer
>>> docker attach mycontainer
退出mycontainer, 并且停止运行
>>> exit确认mycontainer停止运行
>>> docker ps -a
删除mycontainer
>>> docker rm mycontainer
内容:新建container, 命名为mycontainer_2,并且把本地文件夹mount到container里面。
目的:在case 1中,container和本地环境是隔离的,container看不到外面的内容,外面也看不到container的内容。在这个例子里,将本地文件夹case1加载到container里面,演示container在case1文件下做的任何操作都会同步保存到本地。
步骤一:
创新container,命名为mycontainer_2, 并且使用 -v 将case1文件夹mount到mycontainer_2的根目录下
>>> docker run -it --name mycontainer2 -v $pwd_to_case1:/case1 myimage:0.0步骤二:
确认mycontainer_2的根目录下已经存在case1 文件夹
>>> ls步骤三:
进入case1 文件夹, 确认存在Dockerfile文件,原因是本地该文件夹下的Dockerfile文件一并被同步mount到mycontainer_2
>>> cd case1
>>> ls步骤四:
创建hello_world.txt文件
>>> echo "Hello world" >> hello_world.txt步骤五:
退出mycontainer_2, 确认在本地hello_world.txt文件依然存在
>>> ctrl+p ctrl+q
>>> ls
更多关于docker run 的tag(-p, -d, --rm ...), 请参考官方手册:
| Docker Documentation
内容:使用bash script创建container,安装package。
目的:新建container, 命名为‘mycontainer_4’, 安装numpy 1.16.1.
步骤一:
新建bash脚本,命名为‘run_docker_container.sh’, 内容如下:
# run container
docker run -it --name mycontainer_3 -d myimage:0.0
# install numpy
docker exec -it mycontainer_3 pip install numpy==1.16.1
# enter container
docker attach mycontainer_3
步骤二:
运行脚本
>>> bash run_docker_container.sh步骤三:
确认numpy 1.16.1 安装成功
>>> python -c "import numpy; print(numpy._version_)"
内容:使用yml创建一个container
目的:yml是config file,通常用于构建网络。比如有多个container,互相通信。以下例子里,网络中只有一个container。
步骤一:
创建yml, 严格命名为‘docker-compose.yml’, 内容如下:
version: '3'
services:
dev:
image: myimage:0.0
container_name: mycontainer_4
volumes:
- ../case4:/case4
ports:
- 8000:8000
stdin_open: true
tty: true步骤二:
确认进入docker-compose.yml 所在文件夹
>>> ls创建网络
>>> docker-compose up -d步骤三:
进入container
>>> docker attach mycontainer_4
更多关于docker-compose的使用,参考官方手册:
Get started with Docker Compose
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3139527/ ,如需转载,请注明出处,否则将追究法律责任。