【笔记】docker

安装 docker

如有需要可先卸载可能存在的旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

更新apt包索引

sudo apt-get update

安装以下包以使apt可以通过HTTPS使用存储库(repository)

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加Docker官方的GPG密钥

curl -fsSL download.docker.com/linux/ubunt… | sudo apt-key add -

验证您在是否拥有带有指纹的密钥

sudo apt-key fingerprint 0EBFCD88

使用下面的命令来设置stable存储库

sudo add-apt-repository "deb [arch=amd64] download.docker.com/linux/ubunt… $(lsb_release -cs) stable"

再更新一下apt包索引

sudo apt-get update

安装最新版本的Docker CE

sudo apt-get install docker-ce

拉取最新的 ubuntu:16.04 镜像

sudo docker pull ubuntu:16.04

查看镜像

sudo docker images

docker 重命名

sudo docker images
sudo docker tag <image_id> <new name>
sudo docker rmi <原image name>:<原tag>

运行容器,并且可以通过 exec 命令进入 ubuntu 容器

sudo docker run -itd --restart=always --network=host --privileged -v /etc/localtime:/etc/localtime:ro <repository>:<tag> /bin/bash

进入容器

sudo docker exec -it <container id> <command>

进入容器,配置容器环境

  1. apt-get update
apt install iputils-ping
apt-get install vim
apt-get install git
apt-get install pkg-config
  1. 创建目录
mkdir ljd
cd ljd
mkdir project
mkdir software
  1. 安装 go 环境
  • 下载、解压
apt-get install wget
wget https://golang.google.cn/dl/go1.16.2.linux-amd64.tar.gz

tar -xzvf go1.16.2.linux-amd64.tar.gz
mv -f go /usr/local/

# 创建Go语言工作目录

mkdir go_project
  • 编辑环境变量


vim /etc/profile

export GOPATH=/ljd/software/go_project

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

source /etc/project
  • 测试
go version

cd go_project

vim test.go

---------------------------

package main

import (

"fmt"

"runtime"

)

func main() {

fmt.Println("Hello World!", runtime.Version())

}

---------------------------

go run test.go 输出Hellow World 证明成功。

  1. 安装 webrtc(go)
git clone 
  1. IPFS 安装
  • 源码编译
apt-get install libssl-dev
apt-get install gcc

cd go_project/

git clone https://github.com/ipfs/go-ipfs.git

cd go-ipfs

go env -w GOPROXY=https://goproxy.cn,direct

make build GOTAGS=openssl

make install

- 初始化

cmd/ipfs/**ipfs** init

# 以下为命令输出

generating ED25519 keypair...done

peer identity: 12D3KooWFRHcmCNf451T7VjGFBNpo9rGibBnYWYj7mZNokei6tE8

initializing IPFS node at /home/zjkj/.ipfs

to get started, enter:



        ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme

修改监听IP地址和端口

vim ~/.ipfs/config

# 确保文件中内容如下所示

  "Addresses": { 

    "Swarm": [ 

      "/ip4/0.0.0.0/tcp/4001", 

      "/ip6/::/tcp/4001", 

      "/ip4/0.0.0.0/udp/4001/quic", 

      "/ip6/::/udp/4001/quic" 

    ], 

    "Announce": [], 

    "NoAnnounce": [], i

    "API": "/ip4/0.0.0.0/tcp/5005", 

    "Gateway": "/ip4/0.0.0.0/tcp/9095" 


# 后台启动

nohup cmd/ipfs/ipfs daemon > ipfs.log 2>&1 &



ipfs version
  • 添加文件
cd ~

vim test.txt

ipfs add test.txt

# ******************** 提示内容001:开始 ******************** 

added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH test.txt

 38 B / 38 B [=================================================================================================================] 100.00%

# ******************** 提示内容001:结束 ******************** 

# 会显示该文件的hash值



# 我们将/home/ps/.ipfs/config中监听端口修改为9095

# 通过 http://localhost:9095/ipfs/<file_hash> 可以访问到文件的内容
  • 配置IPFS API

安装好之后,可以通过 http://localhost:5005/api/v0/add 来访问,可以通过postman来测试添加文件:

  1. 配置 java 环境
vim /etc/profile

解压后配置 jdk
export JAVA_HOME=/usr/lib/jvm/jdk-14.0.1 ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH 

使配置生效

source /etc/profile
  1. 配置 maven
mkdir maven_repo

vim config/setting.xml
添加
<localRepository>/opt/maven/apache-maven-3.6.3/maven-repo</localRepository>
配置国内镜像
<mirror> 
<id>alimaven</id>  
<name>aliyun maven</name>  
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
<mirrorOf>central</mirrorOf> 
</mirror>

vim /etc/profile
export MAVEN_HOME=/ljd/software/apache-maven
export PATH=$PATH:$MAVEN_HOME/bin

source /etc/profile

  1. 配置 node
解压
tar -xvf node...tar.xz

环境变量
export NODE_HOME=/ljd/softwre/node解压目录 
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

cd node解压目录
mkdir node_glo
bal 
mkdir node_cache 
npm config set prefix "node_global" 
npm config set cache "node_cache"
#npm仓库淘宝源 
npm config set registry https://registry.npm.taobao.org

  1. 安装live555
sudo apt install build-essential
cd /ljd/software/

sudo apt-get install libssl-dev

wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz

tar -xzvf live555-latest.tar.gz

cd live

./genMakefiles linux

make

cd mediaServer

# 可执行文件为 live555MediaServer

nohup ./live555MediaServer > run.log 2>&1 &
  1. 配置 Nginx
tar xzvf nginx-1.20.1.tar.gz
mv nginx-1.20.1 /usr/local/nginx-1.20.1
# 进入nginx目录
/usr/local/nginx/nginx-1.20.1
# 执行命令
./configure
# 执行make命令
make
# 执行make install命令
make install

启动

#进入nginx启动目录 
cd /usr/local/nginx/sbin 
# 启动nginx 
./nginx
# 重新加载配置文件
./nginx -s reload
# 关闭
./nginx -s stop
  • ps知识点
### docker中run和start的区别

docker run 后面指定的是一个镜像

而docker start指定的是一个容器

docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器

删除镜像

sudo docker images
sudo docker rmi <镜像id>
或者
sudo docker rmi <repository>:<tag>

查看容器

sudo docker ps -a

停止容器运行

sudo docker stop <容器id>

save 和 load

先commit
sudo docker ps 
sudo docker commit -a "提交人" -m "提交信息" <container id> <new_name>:<tag>
sudo docker save <repository>:<tag> -o new_docker_image.tar.gz

sudo docker load -i new_docker_image.tar.gz

配置 vscode 连接 远程docker

正统的方法应该是使用微软官方出的的remote-ssh 和 remote-container,但先ssh再链接docker在官方文档中被定义为非常用需求,所以没有很好的支持。故我们采用另一种办法:使用ssh直接链接到docker上。

  • 镜像名称

  • develop:v2
  • 启动docker开放内部22端口:

  • sudo docker run -itd --restart=always -p 5222:22 --privileged -v /mnt:/mnt develop:v2 /bin/bash
  • 先用终端进入docker:

  • sudo docker exec -it 23d6 /bin/bash
  • (可选)给root账户以ssh权限:

  • vim /etc/ssh/sshd_config 并调整PermitRootLogin参数值为yes,取消注释即可
  • 开启docker内部ssh服务:

  • service ssh start
  • 出现Starting OpenBSD Secure Shell server sshd则是成功
  • vscode开启新链接remote-ssh:

  • ssh root@192.168.2.x -A -p 5222

idea 连接远程服务器 docker

  1. 服务器配置允许远程访问 docker
在ExecStart这行后面加上

-H tcp://0.0.0.0:2376 -H unix://var/run/docker.sock
重新加载配置文件和启动:

systemctl daemon-reload systemctl start docker

  1. 在 idea 中安装 docker 插件,填写地址:tcp://xxxx.xx.xx.xx:2365

查询

sudo docker ps -a

进入

sudo docker exec -it "id" /bin/bash