from timeit import default_timer as timer
start = timer()

###需要测试的代码,最后输出运行时间,以秒为单位

end = timer()
print(end - start)

登陆ssh后输入:

vim /etc/ssh/sshd_config

如果命令不存在,则先安装vim

apt install -y vim

打开后文件后移到文本底部,写着port:xxxx,将xxxx改为其他数字即可。端口范围为:1-65535,数值越大越好。
先按下字母"i"就可以进行编辑了,编辑后按Esc,然后输入“:wq” 回车就可以保存修改了。

当你在VPS上新装了系统,通过SSH登陆一般会出现如下提示:

XX packages can be updated.
XX updates are security updates

那么我们可以通过以下命令来更新:

sudo apt-get update        # 获取需要更新的package的列表
sudo apt-get upgrade       # 限制性地更新最近的packages
sudo apt-get dist-upgrade  # 安装更新最新的packages

1 启动docker服务

首先需要知道启动docker服务是:

service docker start

或者:

systemctl start docker

2 关闭docker服务

关闭docker服务是:

service docker stop

或者:

systemctl stop docker

3 启动docker某个image(镜像)的container(容器)

Docker的镜像称为image,容器称为container。

对于Docker来说,image是静态的,类似于操作系统快照,而container则是动态的,是image的运行实例。

比如,有一个image名称为ubuntu,那么比如现在我们启动这个image的container并且进入到这个container的bash命令行中:

docker run -t -i ubuntu /bin/bash

官网是这么说的:

docker run: runs a container.
ubuntu: is the image you would like to run.
-t: flag assigns a pseudo-tty or terminal inside the new container.
-i: flag allows you to make an interactive connection by grabbing the standard in (STDIN) of the container.
/bin/bash: launches a Bash shell inside our container.

理解很简单:

docker run:启动container

ubuntu:你想要启动的image

-t:进入终端

-i:获得一个交互式的连接,通过获取container的输入

/bin/bash:在container中启动一个bash shell

这样就进入container的内部了:

root@af8bae53bdd3:/#

如果有运行中的container,可以在container所在的外部操作系统中运行:

docker ps

查看到这个container。

如果想看到所有的container,包括运行中的,以及未运行的或者说是沉睡镜像,则运行:

docker ps -a

如果要退出就:

Ctrl-D

或:

root@af8bae53bdd3:/# exit

如果想再次打开这个container,运行:

docker start goofy_almeida

其中“goofy_almeida”是容器的名称。

4 进入container(容器)

4.1 使用“docker attach”命令进入

这个时候container运行在后台,如果想进入它的终端,则:

docker attach goofy_almeida

就可以了。

4.2 使用“docker exec -it”命令进入

使用“docker attach”命令进入container(容器)有一个缺点,那就是每次从container中退出到前台时,container也跟着退出了。

要想退出container时,让container仍然在后台运行着,可以使用“docker exec -it”命令。每次使用这个命令进入container,当退出container后,container仍然在后台运行,命令使用方法如下:

docker exec -it goofy_almeida /bin/bash

goofy_almeida:要启动的container的名称

/bin/bash:在container中启动一个bash shell

这样输入“exit”或者按键“Ctrl + C”退出container时,这个container仍然在后台运行,通过:

docker ps

就可以查找到。

5 退出container

输入:

exit

或者按键:

Ctrl + D

作者:我是干勾鱼
来源:CSDN
原文:https://blog.csdn.net/dongdong9223/article/details/52998375

最近一直在写FLASK+JS的网站,到了终于写好了之后发现 :我不懂部署啊?!

最后研究了一番之后决定用docker来区分开mongodb和FLASK的应用。
其中的FLASK 部署用到了以下文章:

用docker部署flask+gunicorn+nginx
https://www.cnblogs.com/xuanmanstein/p/7692256.html

其实作者写了一大堆东西,很多都是已经写好了,压根直接运行就可以,例如:

原作者是在build镜像的时候把代码全都COPY进去了,我改成只copy  requirements.txt 用于安装python包就可以了。代码之类的我还是喜欢用-v挂载。

其实用-v挂载FLASK 已经写入了docker-compose里面,我看了半天才领会到,以为运行的时候还要写什么命令。
但对于我这种小白来说,看了作者写了一大堆东西最后还是不会运行。
最后其实只需要在目标文件夹下运行下面代码就可以运行了:

docker-compose up

总的来说,具体步骤为:

  1. 先将到github的nginx-gunicorn-flask下载整个文件夹,
  2. 将写好的FLASK放入App这个文件夹中,
  3. 然后在CMD上的目标文件夹nginx-gunicorn-flask(自定义目录名)创建image:
sudo docker build -t 'cnf10' .
注意:cnf10为image的自定义名称, 名称后面有‘  .’ , 没有‘  .’ 会创建出错
  1. 创建image后可以运行以下命令来临时运行image,用于测试:
sudo docker run -it --rm -p 80:80 -p 27017:27017  cnf10
注意:
-t 是启动终端
-i是允许进行交互
--rm,在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统
-p 为需要释放的端口
cnf10为image名称
  1. 直接运行下面代码启动
docker-compose up

误装和删除

最近写了一个app,于是乎打算用docker的image来区分mongodb和FLASK app。在本地创建好了image用docker-compose up是可以完美运行的,但当我将代码放到VPS上就出现以下错误:

The program 'docker-compose' is currently not installed. You can install it by typing:
apt install docker-compose

其实我老早就安装了docker,不知道为啥docker-compose需要另外分开安装,太奇怪了。于是我就安装提示输入apt install docker-compose 来安装。安装完成后又出现了另外一个错误:

root@ubuntu:~/cnF10# docker-compose up
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

都什么情况!!!

root@ubuntu:~/cnF10# docker-compose --version
docker-compose version 1.8.0, build unknown

我查了查安装后的版本,显示build unknown。我第一时间怀疑是版本安装错误,后来打算删除再安装,于是我输入rm /usr/local/bin/docker-compose来删除docker-compose,结果:

root@ubuntu:~/cnF10# rm /usr/local/bin/docker-compose
rm: cannot remove '/usr/local/bin/docker-compose': No such file or directory

google了很多帖子,最后通过下面的命令解决:

ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

来源:https://github.com/docker/compose/issues/3371

重新安装

经过上面的坑之后,发现不能通过简单的apt来安装,所以我走一趟官网,根据正确步骤安装,最后是成功运行了。

官网:https://docs.docker.com/compose/install/#install-compose

  1. Run this command to download the latest version of Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.Apply executable permissions to the binary:

sudo chmod +x /usr/local/bin/docker-compose

4.Test the installation.

docker-compose --version

如无意外应该可以正常运行docker-compose了。