$ cd /etc/apt/
$ sudo cp sources.list sources.list.bk
$ sudo gedit sources.list
修改sources.list的内容为下面的设置
#默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
#预发布软件源,不建议启用
#deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
清华apt源链接:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
$ sudo apt-get install -y docker.io
(3)启动docker服务:
$ sudo systemctl start docker
(4)配置文件/etc/docker/daemmon.json添加阿里云镜像地址:
{“registry-mirrors”: [“https://alzgoonw.mirror.aliyuncs.com”]}
(5)docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
$sudo groupadd docker #添加docker用户组
$sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
$newgrp docker #更新用户组
$docker ps #测试docker命令是否可以使用sudo正常使用
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
wsq@wsq-virtual-machine:~$docker pull ubuntu:16.04
wsq@wsq-virtual-machine:~$ docker run -t -i ubuntu:16.04 /bin/bash
从已经创建的容器中更新镜像,并且提交这个镜像(
wsq@wsq-virtual-machine:~$ docker run -t -i ubuntu:16.04 /bin/bash
root@8de10343ef4b:/# apt-get update
root@8de10343ef4b:/# exit
wsq@wsq-virtual-machine:~$ docker commit -m=“has update” -a=“wsq” 8de10343ef4b wsq/wsq_ubuntu
sha256:a527d5725c3377cb4eebad062fe1c5c25e6af6d7a8bac12a5ce3bd6d6fc79996
wsq@wsq-virtual-machine:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wsq/wsq_ubuntu latest a527d5725c33 14 seconds ago 144MB
ubuntu 16.04 faf5784ef367 3 weeks ago 120MB
hello-world latest 30e96422ae92 10 months ago 665kB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB
使用Dockerfile指令来创建一个新的镜像
创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher “[email protected]”
RUN /bin/echo ‘root:123456’ |chpasswd
RUN useradd wsq
RUN /bin/echo ‘wsq:123456’ |chpasswd
RUN /bin/echo -e "LANG=“en_US.UTF-8"” >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
$docker bulid -t wsq/centos:6.7 .
定义容器的基础系统来自哪个 image, 如: FROM ubuntu:14.04, image 仓库为 ubuntu tag 为 14.04的系统。
作者相关信息说明, 一般书写方式为: MAINTAINER <作者名称> <作者邮箱地址>
从宿主机拷贝文件到容器内, 一般格式: ADD ./lib /home/lib, 将当前目录下的 lib 目录中的内容拷贝到容器的 /home/lib/目录下。
在容器内运行命令, 如: RUN apt-get -y update。
切换容器内的当前工作目录, 如: WORKDIR /home/lib/。 当你登陆到容器内后,默认就进入 /home/lib目录。
暴漏端口, 把容器端口暴漏给宿主机, 方便在宿主机访问, 如:EXPOSE 1000 。
执行一系列命令, 如: CMD [“sh”, “./startup.sh”]。
github地址: https://github.com/MyKings/docker-vulnerability-environment/blob/master/bWAPP/Dockerfile
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。
使用以下命令来查看是否已安装了 nginx:
$ docker images
在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。
安装完成后,我们可以使用以下命令来运行 nginx 容器:
$ docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
• --name nginx-test:容器名称。
• -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
• -d nginx: 设置容器在在后台一直运行。
然后通过浏览器可以直接访问 8080 端口的 nginx 服务:
FROM ubuntu:14.04
MAINTAINER MyKings
#使用国内淘宝源
ADD sources.list /etc/apt/
#安装服务
RUN apt-get -y update
RUN apt-get -y install php5 php5-mysqlnd mysql-server wget unzip
#启动 mysql 并设置 root 密码
RUN /etc/init.d/mysql start &&
mysql -e “grant all privileges on . to ‘root’@‘localhost’ identified by ‘bug’;”&&
mysql -u root -pbug -e “show databases;”
#切换工作目录
WORKDIR /var/www/html/
#本地拷贝
#ADD ./bWAPP_latest.zip /var/www/html/bWAPP_latest.zip
#RUN unzip /var/www/html/bWAPP_latest.zip
#下载 bWAPP
RUN wget http://jaist.dl.sourceforge.net/project/bwapp/bWAPP/bWAPP_latest.zip && unzip bWAPP_latest.zip
#删除默认首页
RUN rm /var/www/html/index.html
#拷贝启动脚本
ADD ./startup.sh ./
EXPOSE 80
CMD ["/bin/bash", “/var/www/html/startup.sh”]
$ git clone https://github.com/MyKings/docker-vulnerability-environment
#进入到 bWAPP 目录
$ cd ./docker-vulnerability-environment/bWAPP
开始创建 image 镜像,过程稍慢
$ docker build -t bwapp .
$ docker run -it -d -p 8001:80 --name bwapp_wsq1 bwapp
使用浏览器打开 http://127.0.0.1:8001/
创建容器:$docker run -it -d --name django_test ubuntu:16.04
进入容器: $docker exec -it django_test bash
退出容器:exit
更新apt源、安装python和虚拟环境:
$ sudo apt-get -y update
$ apt-get install sudo
$ sudo passwd root
$ sudo apt-get install python
$ sudo apt-get install python3.6
$ sudo apt-get install virtualenv
$ sudo apt-get install virtualenvwrapper
创建一个保存虚拟环境的目录:
sudo mkdir ~/.virtualenvs
sudo vim ~/.bashrc
修改.bashrc文件添加以下代码:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
退出后执行:
source ~/.bashrc
mkvirtualenv -p /usr/bin/python3 vne_name #通过python3创建虚拟环境
workon virtualenvname #进入虚拟环境
deactivate #退出虚拟环境
pip换源
mkdir ~/.pip
touch ~/.pip/pip.conf
在pip.conf中添加如下
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
退出
pip install django==1.8.2 #安装django1.8.2
django-admin startproject project_name # 创建django项目
python manage.py startapp app_name #创建app
python manage.py runserver 8000 #运行django项目