Docker基本操作
下载image
docker pull ubuntu:18.04
从image生成个repository
docker run -ti ubuntu:18.04
(每次run后可能需要source /etc/profile配置环境变量)
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器及对应数据卷
查看docker磁盘使用情况
docker system df
更多清理方式参考:http://dockone.io/article/3056
查看镜像
docker images
查看repository
docker ps
保存repository更新
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
根据这个myubuntu容器提交镜像
[root@docker-test1 ~]# docker commit -a “wangshibo” -m “this is test” 651a8541a47d myubuntu:v1
sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d
再次查看镜像,发现镜像myubuntu:v1已经提交到本地了
[root@docker-test1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu v1 6ce4aedd12cd 59 seconds ago 84.1 MB
在本机删除这个镜像
[root@docker-test1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu v1 6ce4aedd12cd 15 minutes ago 84.1 MB
wangshibo/myubuntu v1 6ce4aedd12cd 15 minutes ago 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB
应该先删除docker tag改名前的镜像,使用镜像名称删除。(一般在docker tag镜像改名后,最好删除改名前的镜像)
[root@docker-test1 ~]# docker rmi myubuntu:v1
Untagged: myubuntu:v1
Untagged: wangshibo/myubuntu@sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d
[root@docker-test1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wangshibo/myubuntu v1 6ce4aedd12cd 15 minutes ago 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB
这个时候就可以删除镜像ID删除了
[root@docker-test1 ~]# docker rmi 6ce4aedd12cd
Untagged: wangshibo/myubuntu:v1
Deleted: sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d
Deleted: sha256:0ddeb6a16badd042914c2e72b9ef0331550c1cdcc4bdc6650a90cd9f57f1501b
[root@docker-test1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB
无法删除image的情况:
[root@docker-test1 ~]# systemctl stop docker
[root@docker-test1 ~]# cat /proc/mounts | grep “docker”
/dev/mapper/centos-root /var/lib/docker/containers xfs rw,relatime,attr2,inode64,noquota 0 0
[root@docker-test1 ~]# umount /var/lib/docker/containers
[root@docker-test1 ~]# rm -rf /var/lib/docker
[root@docker-test1 ~]# systemctl start docker
查看系统中文件的使用情况: df -h
查看当前目录下各个文件及目录占用空间大小: du -sh *
安装基本的工具
apt-get update
apt-get install wget
apt-get install yum
(以下两步安装OpenSDK)
apt-get install default-jre
apt-get install default-jdk
(以下几步安装JDK)
apt-get install python-software-properties
apt-get install software-properties-common
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
apt-get install python2.7
apt-get install python3.7
(我用的ubuntu18.04,已经安装了python2.7和python3.6。此时python用的2.7,python3用的3.6,python3.7用的3.7)
Docker中运行可视化工具
brew install socat
brew install Caskroom/cask/xquartz
打开Xquartz软件,偏好设置->安全性->勾选允许从网络客户端连接。
Reboot
lsof -i4 | grep 6000 确保6000没有被占用(占用的kill掉)
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\”$DISPLAY\”
open -a Xquartz
$ docker run -e -ti DISPLAY={IP of en0}:0 dockerimage
可以安装一个firefox,然后运行firefox看效果
(另一种提到的方法)
- Install XQuartz
- Open it, goto preferences > Security > allow connections from network clients
- Reboot
- Start XQuartz (from the applications folder or with open -a XQuartz)
- Allow incoming connections from your ip with xhost + $IP
- Run firefox in your docker container
docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unixfirefox
Ref: http://kartoza.com/en/blog/how-to-run-a-linux-gui-application-on-osx-using-docker/
安装Neo4j
Docker Neo4j
Docker pull neo4j
docker run -d -p 7473-7474:7473-7474 -p 7687:7687 neo4j
localhost:7474/browser
安装Storm
(安装Zookeeper)
wget http://mirrors.shu.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
tar -xzvf zookeeper-3.4.12.tar.gz
vim /etc/profile
export ZOOKEEPER_HOME=/opt/software/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
将conf目录下的zoo_sample.cfg复制并修改为zoo.cfg,并将里面的配置修改为:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/dragon/Storm/zookeeper-3.4.6
clientPort=2181
zkServer.sh start 验证是否成功
(安装ZeroMQ)
wget https://github.com/zeromq/libzmq/releases/download/v4.2.5/zeromq-4.2.5.tar.gz
tar -zvxf zeromq-4.0.5.tar.gz
cd zeromq-4.0.5/
./configure
make
make install
ldconfig
(安装JZMQ)
git clone git://github.com/nathanmarz/jzmq.git
cd jzmq/
touch src/classdist_noinst.stamp
apt-get install libtool-bin (执行下一步有时候会提示缺少libtool,但实际已经安装,需要再执行此命令才行)
./autogen.sh
./configure
cd src/org/zeromq
javac *.java
make
make install
(安装Storm)
wget https://www-us.apache.org/dist/storm/apache-storm-1.2.2/apache-storm-1.2.2.tar.gz
tar -zxvf apache-storm-1.2.2.tar.gz
修改/etc/profile
export STORM_HOME=/home/heliang/apache-storm-1.2.2
export PATH=$PATH:$STORM_HOME/bin
source /etc/profile
修改./conf/storm.yaml
storm.zookeeper.servers:
- "127.0.0.1"
nimbus.host: “127.0.0.1”
storm.local.dir: /home/heliang/apache-storm-1.2.2
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
(之前运行zkServer.sh start)
storm nimbus
storm supervisor
storm ui (通过127.0.0.1:8080查看topology运行情况)
安装ES
下载ES+Kibana
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz
wget wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-linux-x86_64.tar.gz
tar -zxvf *.gz
一般情况下kibana的版本必须和Elasticsearch安装的版本一致
安装ElasticSearch
Root账户无法运行ES
(可能先要设置一下root密码,以便后面获取root权限:sudo passwd,然后输入密码root)
adduser es (密码es)
chown -R es ./elasticsearch-6.5.1/
su es
./bin/elasticsearch
可以运行如下命令看是否安装成功
curl ‘http://localhost:9200/?pretty'
安装Kibana
解压后直接./bin/kibana即可
基于DeepPavlov的对话系统
安装(必须Python3.6以上):
virtualenv env 或者
virtualenv –python=python3 env
source ./env/bin/activate
pip install deeppavlov
评论加载中