引言
最近在做一个项目,客户要求我们利用docker来搭建我们程序所以来的环境,所以,我就开始学docker,学着学着发现,docker确实挺方便的。之前一直再用虚拟环境,看来以后得向docker方向靠拢了,而且听说现在大部分小伙伴们都是用的docker。所以我也来讲讲我在学习并开发过程中的一些笔记吧。
开发环境
系统:ubuntu16.04
docker版本:
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.6.2
Git commit: 092cba3
Built: Thu Nov 2 20:40:23 2017
OS/Arch: linux/amd64Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Go version: go1.6.2
Git commit: 092cba3
Built: Thu Nov 2 20:40:23 2017
OS/Arch: linux/amd64
Experimental: false
docker常用命令
1.docker的安装,主要分为三步骤
$sudo apt-get update
$sudo apt-get install docker
$sudo apt-get install docker.io
2.查看docker版本,$sudo docker version
3.搜索镜像,$sudo docker search <imagename>
4.下载镜像,$sudo docker pull <imagename>
5.查看已下载镜像,$sudo docker images
6.在下载好的镜像中运行命令:$sudo docker run learn/tutorial echo "hello word"
7.在镜像中安装新程序:$sudo docker run learn/tutorial apt-get install -y <程序名>
8.保存对容器的修改:
$sudo docker ps -l
查看修改后镜像的id号$sudo docker commit <id> <镜像名>
,例:$sudo docker commit 698(只输前三四个id号即可) learn/ping
$sudo docker ps -a 查看存在的容器信息
9.运行新的镜像:$sudo docker run learn/ping ping www.baidu.com
10.检查运行中的镜像:$sudo docker ps
,若要具体看某一特定的容器,可用命令:$sudo docker inspect <id>
11.使用交互方式运行镜像:
$sudo docker run -it <镜像名> /bin/bash
(如:$sudo docker run -it ubuntu /bin/bash
)$sudo docker start -ai <容器名>
(如:$sudo docker start -ai kickass_swanson
)
12.导出镜像到本地文件:$sudo docker export <容器id> > <导出包名>
(如:sudo docker export 2c441049f06e > my_container.tar
)
13.载入本地镜像文件:$sudo cat <镜像包名> | sudo docker import - <新建镜像名>:<版本>
(如:$sudo cat louiscontainer.tar | sudo docker import - test/ubuntu:v1.0
)
14.删除镜像:$sudo docker rmi <镜像名称>
(一般得先将镜像中的容器删除掉再删除镜像)
15.删除容器:$sudo docker rm <容器id>
16.关闭容器:$sudo docker stop <容器名>
17.使用docker镜像容器运行Python脚本文件:
runoob@runoob:~/python$sudo docker run -v
(假设helloworld.py在~/python/路径下)
$PWD/myapp:/usr/src/myapp -w /usr/src/myapp python:3.5 python
helloworld.py命令说明:
-v $PWD/myapp:/usr/src/myapp #将主机中当前目录下的myapp挂载到容器的
-w /usr/src/myapp #指定容器的/usr/src/myapp目录为工作目录
python helloworld.py #使用容器的python命令来执行工作目录中的
helloworld.py文件
18.使用dockerfile,制作镜像:$sudo docker build -t <镜像名> .
(如:$sudo docker build -t louistest .
) ,此命令需在dockerfile所在目录进行
题外话(有关虚拟环境的一些命令)
- 将搭建好的虚拟环境中的依赖包提取出来:
$pip freeze > venv/requirement.txt
- 利用requirement.txt快速搭建虚拟环境:
$pip install -r path/requirements.txt