2019-04-11 | Engineering | UNLOCK

Docker相关安装备忘

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看效果

(另一种提到的方法)

  1. Install XQuartz
  2. Open it, goto preferences > Security > allow connections from network clients
  3. Reboot
  4. Start XQuartz (from the applications folder or with open -a XQuartz)
  5. Allow incoming connections from your ip with xhost + $IP
  6. Run firefox in your docker container
    docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix firefox

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

评论加载中