x86 アーキテクチャ ubuntu22 は docker を使用して zsnes をデプロイします

0. 環境


x86 ubuntu22

1.ドッカーをインストールする

$ sudo apt remove docker docker-engine docker
$ sudo apt update
$ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8

$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

$ sudo systemctl status docker
$ sudo systemctl restart docker

$ sudo docker run hello-world

 


2. Dockerイメージをビルドする 

フォルダーを作成して構成を追加する

$ cd ~/
$ mkdir docker_zsnet
$ cd docker_zsnet
$ mkdir apt

2.1 ファイル apt/source.list を作成する

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

2.2 ファイルstart.shを作成する

#!/bin/bash
#mosquitto -c /etc/mosquitto/mosquitto.conf &
zsnes &

2.3 ファイルDockerfileの作成

FROM ubuntu:18.04
#COPY apt/sources.list /etc/apt/
RUN dpkg --add-architecture i386 && \
    apt-get -y update && \
    apt -y install zsnes xarclock
     

COPY start.sh /root/
WORKDIR /root
#EXPOSE 11883
CMD ["bash","-c","./start.sh start && tail -f /dev/null"]

これはディレクトリです:

xxjianvm@xxjianvm-virtual-machine:~/work/docker_zsnes$ tree
.
├── apt
│   └── sources.list
├── Dockerfile
└── start.sh

1 directory, 3 files
xxjianvm@xxjianvm-virtual-machine:~/work/docker_zsnes$ 


    
3. Docker イメージをビルドして実行する

 


Ubuntu22 では docker 命令を操作するために sudo が必要なので、最初に root ユーザーに切り替えます。

$ sudo -s

Dockerfile が配置されているディレクトリに移動し、自動イメージ ビルドを実行します。

$ docker build -t docker_zsnet:v0.1 .

ビルドの実行が完了したら、次のようにします。

$ apt-get install x11-xserver-utils
$ xhost + #这个指令每次重启需要执行一次
$ docker run -d -it -v /tmp/.x11-unix:/tmp/.x11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE --net=host docker_zsnet:v0.1 /bin/bash

このパラメータにより、Docker がインターフェイスを使用してプログラムを実行できるようになります。

-v /tmp/.x11-unix:/tmp/.x11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE --net=host 

完全に自動化された展開はまだ利用できないため、次の手順を実行する必要があります。

$ docker ps
CONTAINER ID   IMAGE               COMMAND       CREATED          STATUS          PORTS     NAMES
59393c59aec2   docker_zsnet:v0.1   "/bin/bash"   58 seconds ago   Up 57 seconds             wonderful_mendel
$ docker exec -it wonderful_mendel bash
# chmod +x start.sh

# ./start.sh

上記の手順では、$ は ubuntu22 ホスト上で実行され、# は Docker イメージ内で実行されることに注意してください。

docker の zsnes は継続的に実行できます。

4. Docker の基本操作をいくつか添付します。


4.1 すべての画像を一覧表示する

docker ps -a

4.2 不要な画像を削除する

 docker rm 笑い_ネイピア

4.3 画像を入力するコマンドライン

実行中のイメージをリスト表示する
docker ps

イメージを入力します
docker exec -it Beautiful_mendel bash

おすすめ

転載: blog.csdn.net/qq_27158179/article/details/132000962