SemiDrive X9H 平台开发环境搭建 (一):Docker 开发环境搭建

一、 前言
       
        Docker 解决了软件环境部署复杂的问题。对于一个传统的软件工程,开发人员把写好的代码放到服务器上去运行是一件很头疼的事情,因为常常会出现环境不兼容而导致各种各样的 Bug。比如说,开发是在 Windows 系统下编写的代码,放到 Linux 服务器上可能会出问题;开发在本地依赖了一个系统自带的驱动,服务器上却没有这个驱动;开发在本地设置了很多环境变量,服务器上又得重新设置,在软件部署的时候,经常会发生在这台机器上可以跑,但是在另一台机器上却运行失败的情况。运维人员需要不断在开发环境和服务器环境之间调试。有了 Docker, 只需要简单的几行命令,就可以做到所有的运行环境都一致。

       本文主要介绍了如何在宿主机系统上进行 Docker 服务的部署,以及如何加载 Docker 镜像、如何创建并运行 Docker 容器等。


二、 安装 Docker 及相关软件包

1.  安装 https 相关的软件包

$ sudo apt-get update

$ sudo apt-get install apt-transport-https

$ sudo apt-get install ca-certificates

$ sudo apt-get install curl

$ sudo apt-get install software-properties-common

2.  设置 Docker 的 apt 仓库地址

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo  apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] \

https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

3.  安装 Docker 软件包

$ sudo apt-get install docker-ce

4.  测试 Docker 服务是否已部署成功

$ sudo docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

0e03bdcc26d7: Pull complete

Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

# 出现以上 log 即证明 Docker 服务已部署成功。

5.  查看安装完成的 Docker 版本

$ docker --version

Docker version 20.10.11, build dea9396

三、 搭建 SemiDrive Docker 环境

1.  加载镜像 sd_build_docker.tar.gz

$ sudo docker load --input ./sd_build_docker.tar.gz

2.  检查 image 是否加载成功

$ docker images





#出现加载的镜像名 sd_build_3

3.  启动容器

$ docker run -it --name chelsea_ubuntu16_04 --hostname ubuntu16 -v media/atu/data/chelsea/x9h/:/home/workspace sd_build_3 /bin/bash

查看容器状态

$ docker ps -a



#说明容器已经启动

四、 Docker 常用命令

1.  创建并运行一个新的容器

$ docker run -it --name chelsea_ubuntu16_04 --hostname ubuntu16 -v media/atu/data/chelsea/x9h/:/home/workspace sd_build_3 /bin/bash

基于镜像 sd_build_3  创建名称为 chelsea_ubuntu16_04 的容器,设置容器中的 Ubuntu 系统 hostname 为 ubuntu16,并挂载指定的宿主机目录 media/atu/data/chelsea/x9h/ 到容器中的 /home/workspace 目录下。

2.  切换回宿主机

按 Ctrl+D 或运行 exit 命令:直接停止容器,容器中的系统会停止运行;

先按下 Ctrl+P,然后按下 Ctrl+Q:不停止容器切换终端回到宿主机。



# 提示 read escape sequence 后回到宿主机

3.  进入正在运行的容器

$ docker exec -it chelsea_ubuntu16_04 /bin/bash

4.  停止和启动容器

$ docker stop chelsea_ubuntu16_04

$ docker start chelsea_ubuntu16_04

5.  查看容器状态

$ docker ps -a

6.  删除容器

$ docker rm chelsea_ubuntu16_04

7.  重命名容器

$ docker rename chelsea_ubuntu16_04 chelsea_ubuntu16_04_rename

8.  宿主机和容器之间传输文件

如果在创建容器时已指定了挂载目录,则只需把文件放到挂载的宿主机目录下,容器中即可直接访问。如果没有挂载,可以使用 docker cp 命令进行传输。

复制文件到容器中 /home 目录下

$ docker cp filetest ubuntu16.04_felix:/home

复制容器中的目录 /home/dirtest/ 到宿主机的当前目录。

$ docker cp ubuntu16.04_felix:/home/dirtest/ ./

五、  参考文档

  • 《SD_X9_SDK_User_Manual》
  • 《Hands-On Docker 服务的部署及使用 on Ubuntu16.04_ Felix Ye_20200605》
  • 《SD_X9_PTG3.9_release_notes》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论