使用中文原生地将以下内容进行改写:Docker命令
1. 安装Docker
我要在Raspberry Pi 3上安装Docker。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
启动测试:如果确认并显示版本,则表示安装正常。
pi@raspberrypi:~ $ sudo usermod -aG docker pi
pi@raspberrypi:~ $ docker version
Client:
Version: 18.06.3-ce
API version: 1.38
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:34:35 2019
OS/Arch: linux/arm
Experimental: false
Server:
Engine:
Version: 18.06.3-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:30:23 2019
OS/Arch: linux/arm
Experimental: false
注意:一般用户可能无法执行docker版本以及其他docker命令。
在这种情况下,需要为一般用户添加权限。请参考以下方法。
2. 获取Rasbian镜像
如果无法获取下方的图片,请先登出,然后再次登录并重新执行操作。
pi@raspberrypi:~ $ sudo docker pull resin/rpi-raspbian //rasbianを使う場合はこちらを使う。
pi@raspberrypi:~ $ docker pull ubuntu:18.04 //ubuntuを使う場合はこちらを使う
确认是否已获取到Raspbian的镜像,可以通过运行docker image ls命令进行。
pi@raspberrypi:~ $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
resin/rpi-raspbian latest 28f1ee4d4d5a 8 months ago 128MB
要删除Rasbian镜像,使用docker rmi [Image ID]命令。
pi@raspberrypi:~ $ docker rmi d7ac96770fef
Deleted: sha256:d7ac96770fefd605cf39c955951443dc2b0b8563cdad57db51821690a6be565a
3. 使用图像获取来创建容器的命令
在使用例中, 通过Image创建容器。若要打开端口90和端口3000,可以这样写。
docker run -it --name rasp0 --publish 90:90 --publish 3000:3000 resin/rpi-raspbian:latest bash
使用图像创建容器。如果要打开端口4000,则写作如下。
docker run -it --name radiko --publish 4000:4000 ubuntu:18.04 bash
启动容器
docker start -ai rasp0
5. 主机和容器之间的文件共享
ホストをファイル共有を行うコンテナを作る。複数ポートを空けたい時は、–publish 91:91 –publish 3000:3000とする。
「-m 4g」はコンテナに4Gのメモリを割り当てるという意味になる。
[ホーム] /hoem/pi/dcshare と[コンテナ内] /homeでファイルを共有する方法
構文
docker run -m 4g -v [共有を行うホームのディレクトリ]:[共有を行うコンテナのディレクトリ] -it –public xx:yy [イメージ] bash
docker run -m 4g -v /home/pi/dcshare:/home -it --publish 91:91 --publish 3000:3000 resin/rpi-raspbian:latest bash
你可以通过free命令来确认实际是否分配了内存。
root@b5f28ebc9bee:/# free
total used free shared buff/cache available
Mem: 4039632 163352 929732 281480 2946548 3600908
Swap: 1946040 0 1946040
4. 各種アプリのインストール
下記の作業はdocker上で使用する場合は、コンテナの中に入って行うこと。
4.1 Node.jsとnpmのインストール
こちらを参照してください。
5. 容器操作
pi@raspberrypi:~ $ docker container ls -a //すべてのコンテナを表示する
pi@raspberrypi:~ $ docker stop ebf7914c15d5 //IDを指定してコンテナを停止する
pi@raspberrypi:~ $ docker container rm ebf7914c15d5 //IDを指定してコンテナを削除する
pi@raspberrypi:~ $ docker rename [container_oldname] [container_newname] //コンテナの名前を変更する
pi@raspberrypi:~ $ docker start [コンテナ名] // 指定したコンテナをスタートする
pi@raspberrypi:~ $ docker exec -it [コンテナ名] bash // 指定したコンテナに入る
pi@raspberrypi:~ $ docker unpause CONTAINER //一時停止したコンテナを再開させる。
6. 容器的网络调查
pi@raspberrypi:~ $ docker container inspect --format '{{ .NetworkSettings.IPAddress }}' [container名] //コンテナに割り当てられたIPアドレスを取得する
pi@raspberrypi:~ $ docker container inspect [container名] //containerのネットワーク情報を取得する。
pi@raspberrypi:~ $ docker network ls //dockerネットワーク内の構成要素を取得する。
pi@raspberrypi:~ $ docker network connect [ネットワーク名] [コンテナ名] //指定したコンテナをネットワークに接続する
補足
PS C:\Users\fdfpy> docker network ls
NETWORK ID NAME DRIVER SCOPE
3f0b5fcd495c bridge bridge local
a08ced067d17 host host local
32c8ce9d2e91 none null local
7. Vue-cliでローカルサーバーを立ち上げ
按照这边的指示安装Vue-cli。
需要安装Git。请参考这里的安装方法。
如果安装Vue-cli的目录的访问权限受到限制,可以使用以下命令来扩展访问权限。
pi@raspberrypi:~ $ sudo chmod o+rw [ディレクトリ名] -R //誰でもアクセスできるようにした。
请留意
输入http://xxx.xxx.xxx.xxx:91,即可访问用Vue.js构建的本地服务器,并浏览Vue.js的演示界面。
如果在一个container内部启动了本地服务器,然后使用Ctrl + Z强制终止,那么指定的端口仍然会被占用,导致在再次启动本地服务器时出现“address already in used”错误。为了避免这个问题,必须使用kill命令来释放指定的端口。
root@ed8e72dc832e:/home# apt-get install lsof / /lsofインストール
root@ed8e72dc832e:/home# lsof -i:90 //port 90を使用しているプロセスを表示する
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 1077 root 21u IPv4 994397 0t0 TCP localhost:91 (LISTEN)
root@ed8e72dc832e:/home# kill -9 1077 //プロセス番号 1077を削除する
在Windows系统中(使用PowerShell执行命令)
C:\Users\fdfpy> netstat -nao|findstr "91"
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:91 0.0.0.0:0 LISTENING 2196
C:\Users\fdfpy> taskkill /f /pid 2196
成功: PID 2196 のプロセスは強制終了されました。
node.jsでローカルサーバーを立ち上げたときにホストからアクセスできない場合の対応はこちら
从容器中创建镜像文件。
构文
将容器命名为[容器名],并命名为[镜像名]:[标签]。
pi@raspberrypi:~ $ docker commit ed8e72dc832e custom-rasp:rasp
sha256:e6e896468bece61e92ff30cb440efcfc3a56eed3bb986b47f162c9901ec3c01b
pi@raspberrypi:~ $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
custom-rasp rasp e6e896468bec 6 minutes ago 601MB
<none> <none> d7ac96770fef About an hour ago 601MB
<none> <none> 3646b21d0ac3 About an hour ago 601MB
nginx latest 96fa93c111fd 2 weeks ago 97.6MB
resin/rpi-raspbian latest 28f1ee4d4d5a 8 months ago 128MB
docker/compose 1.9.0 78c3b8586e4a 2 years ago 59.5MB
9. 将图像文件转移到另一台机器上 yī
请看这边。
10. 将图像上传到Docker Hub。
把10-1的图像文件改成指定格式的文件名。
如果要将镜像上传到Docker Hub,必须以指定格式确定镜像文件名。
如果已经存在Image文件名,可以使用以下命令来更改Image文件名。
将[従来的Image文件名]重新命名为[Docker Hub账户名]/[従来的Image文件名]:latest。
pi@raspberrypi:~ $ docker tag 3130485e78a3 fdfpy/3130485e78a3:latest
pi@raspberrypi:~ $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
fdfpy/3130485e78a3 latest 3130485e78a3 27 minutes ago 1.68GB ←名前を変更した
stockget 20200410 3130485e78a3 27 minutes ago 1.68GB ←すでにあるImage
stockget 20200316 732b01dc576f 3 weeks ago 1.66GB
stockapri 20200224 e7b9ee411bf3 6 weeks ago 1.32GB
stockget v0 e18cee2f2da6 3 months ago 1.11GB
ubuntu 18.04 154a1aa86195 3 months ago 46.7MB
resin/rpi-raspbian latest 28f1ee4d4d5a 14 months ago 128MB
10-2 登录Docker Hub
pi@raspberrypi:~ $ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: fdfpy
Password:
WARNING! Your password will be stored unencrypted in /home/pi/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
上传Docker镜像文件10-3
pi@raspberrypi:~ $ docker push fdfpy/3130485e78a3:latest
The push refers to repository [docker.io/fdfpy/3130485e78a3]
f7dce5f67e14: Pushed
aaaaca953bab: Pushed
77f7899a8a08: Mounted from library/ubuntu
e22dd39d4c8f: Mounted from library/ubuntu
c193d85f5937: Mounted from library/ubuntu
1f1b075df34b: Mounted from library/ubuntu
latest: digest: sha256:cf651e8654168b43f9879df364bec2a02965045053d0d6ca4d6631d418864ae3 size: 1578
11 其他
如果出现了”坏的编组数据(未知类型码)”的错误,可以执行”find /usr -name ‘*.pyc’ -delete”命令,就可以正常运行。