ubuntu使用docker_ubuntu进入docker-程序员宅基地

技术标签: 容器  build  LINUX  ubuntu  docker  

什么是docker

docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现。

安装docker

sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker

创建新的用户组docker

newgrp docker

如果没有docker group, 可能会报错:

Got permission denied while trying to connect to the Docker daemon ...

将当前用户加入docker组

sudo gpasswd -a ${
    USER} docker

重启服务

sudo systemctl restart docker

docker获取busybox image

$ docker pull busybox

Using default tag: latest
latest: Pulling from library/busybox
7e5209d2300f: Pull complete
Digest: sha256:34c3559bbdedefd67195e766e38cfbb0fcabff4241dbee3f390fd6e3310f5ebc
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest

docker交互模式运行基于busybox容器

docker run -it imageID [cmd]

这个是用镜像产生一个容器,并且和cmd程序做交互,-i表示交互式的,表示[cmd]是一个有用户输入的程序,比如/bin/bash 和 python 等等。

-t 产生一个终端。所以说有-i就必须有-t,不然怎么输入呢。

$ docker run -it busybox
/ #

指定容器名mybusybox启动busyboximage,并且进入交互模式:

docker run -it --name mybusybox busybox

查看当前容器:

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS                            PORTS     NAMES
d3f34b79900f   busybox   "sh"      16 seconds ago   Exited (0) 8 seconds ago                    mybusybox
6e4ab0eb8803   busybox   "sh"      9 minutes ago    Exited (137) About a minute ago             silly_herschel

silly_herschel是没指定容器名的时候默认的名字。

docker查看本地的images

$ docker images ls
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
busybox      latest    66ba00ad3de8   4 days ago   4.87MB  latest    829374d342ae   5 days ago     1.24MB

docker创建ubuntu容器

$  docker run -it ubuntu:latest /bin/bash

这个先pull了ubuntu的docker image,然后进入交互式模式,退出后可以看到:

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
busybox      latest    66ba00ad3de8   4 days ago    4.87MB
ubuntu       latest    6b7dfa7e8fdb   4 weeks ago   77.8MB
$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED              STATUS                       PORTS     NAMES
bee046909c7b   ubuntu:latest   "/bin/bash"   About a minute ago   Exited (0) 57 seconds ago              hungry_antonelli
d3f34b79900f   busybox         "sh"          6 minutes ago        Exited (0) 5 minutes ago               mybusybox
6e4ab0eb8803   busybox         "sh"          15 minutes ago       Exited (137) 6 minutes ago             silly_herschel

拉取最新版的Ubuntu镜像

$ docker pull ubuntu

或者:

$ docker pull ubuntu:latest

docker查看启动的容器

$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED              STATUS                       PORTS     NAMES
bee046909c7b   ubuntu:latest   "/bin/bash"   About a minute ago   Exited (0) 57 seconds ago              hungry_antonelli
d3f34b79900f   busybox         "sh"          6 minutes ago        Exited (0) 5 minutes ago               mybusybox
6e4ab0eb8803   busybox         "sh"          15 minutes ago       Exited (137) 6 minutes ago             silly_herschel

docker启动容器

$ docker start bee046909c7b
240f22e326f5

或者

$ docker start hungry_antonelli

容器在exit之后,要先start之后才能进入容器。

docker进入到容器内部

$ docker exec -it bee046909c7b /bin/bash
root@bee046909c7b:/#

或者

$ docker exec -it hungry_antonelli /bin/bash
root@bee046909c7b:/#

docker查看所有容器

$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED              STATUS                       PORTS     NAMES
bee046909c7b   ubuntu:latest   "/bin/bash"   About a minute ago   Exited (0) 57 seconds ago              hungry_antonelli
d3f34b79900f   busybox         "sh"          6 minutes ago        Exited (0) 5 minutes ago               mybusybox
6e4ab0eb8803   busybox         "sh"          15 minutes ago       Exited (137) 6 minutes ago             silly_herschel

docker删除不用的container

$ docker container rm 62de3ec6be08 4d284a0bddee

修改docker container路径

sudo vi /etc/docker/daemon.json

增加data-root:

$ cat /etc/docker/daemon.json
{
    
	"live-restore": true,
	"insecure-registries":[
		"https://docker.mirrors.ustc.edu.cn",
		"http://f1361db2.m.daocloud.io",
		"https://registry.docker-cn.com"
	],
	"data-root":"/home/hui/disk4t/docker/"

然后重启docker服务

sudo systemctl restart docker

查看修改是否成功

$ docker info
``

## docker mount本地目录

加载`/disk4t/codes/video``container`中的 `/work/video`目录下:

```bash
$ docker run -it -v /disk4t/codes/video:/work/video video_build_image:latest bash

或者

$ cd /disk4t/codes/video
$ docker run -it -v `pwd`:/work/video video_build_image:latest bash

复制文件到docker容器

docker cp foo.txt container_id:/foo.txt
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hongszh/article/details/123403543

智能推荐

Hadoop MR 分区(partition)和全排序(WritableComparable)_writablecomparable排序(区内排序)-程序员宅基地

文章浏览阅读708次,点赞2次,收藏7次。一、概念1、分区:Hadoop默认分区是根据key的hashCode对ReduceTask个数取模得到的,用户无法控制哪个key存储到哪个分区。   想要控制哪个key存储到哪个分区,需要自定义类继承Partitioner<KEY, VALUE>,   泛型KEY, VALUE分别对应Mapper里的输出key,value,因为分区是在map()之后,环形缓冲区溢写时完成的。    提示:如果ReduceTask的数量大于自定义类中重写的getPartition()设置的分区数时,_writablecomparable排序(区内排序)

PyG教程(1):初识Pytorch Geometric-程序员宅基地

文章浏览阅读4.5k次,点赞4次,收藏31次。PyG全称是Pytorch Geometric,它是一个基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型。PyG中实现了很多先进(state of the art)的GNN模块,例如、、、、等等。此外,PyG中还包含了大量的benchmark图数据集、丰富的图数据操作方法、支持多GPU。关于PyG的安装,推荐使用命令的方式:其中和分别表示Pytorch版本和CUDA版本的占位符,即需要根据你的环境中两者的版本来对其进行设置,例如你本地的Pytorch和CUDA版本分别为和,则使用_pyg

JavaWeb-10(会话技术之session&amp;JSP)-程序员宅基地

文章浏览阅读169次。JavaWeb-会话技术之session&amp;JSP会话管理之Session技术一、Session在WEB开发中,server能够为每一个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此。在须要保存用户数据时。server程序能够把用户数据写到用户浏览器独占的session中,当用户使用浏览器訪问其..._javaweb session用法在jsp

算法之旅 动态规划之车间调度问题_动态规划求解车间调度-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏35次。动态规划之车间调度问题真言哎呀,大家好。憋了我久了,终于回校了,回校以后真不想说我的大学了,你说我回来这么早来准备面试,你给供暖不行呀,暖气冰凉冰凉的,你想冻死学生呀,学生回来早点好找工作,找个世界500强也不是给你争脸麽。如果不是好好学习的同学,他会回校这么早么?你咋不知道好歹呢?还不如上班呢,呜呜呜。回到正题,代码一年前写的,自己感觉真烂,各种不满意,注释,异常,优_动态规划求解车间调度

Jenkins构建历史中的Build Name设置_jenkins 构建名 #1-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏8次。之前已经写了关于java项目和前端react项目自动化构建的文章,有没有发现,在项目的构建历史中,只能看到项目的构建号和构建时间。终于,开发人员在使用的过程中提出了新需求:在项目的构建历史中能直接看到某次构建是谁发布的,发布的是什么分支,而不用去某次构建的"控制台输出"中查看。其实这个需求实现起来并不难,毕竟Jenkins的插件社区这么强大。下面的两个插件,就很好的解决了这个需求。user..._jenkins 构建名 #1

conda pip更新包的命令_pip update conda-程序员宅基地

文章浏览阅读1.3k次。1.condaconda update name2.pippip install --upgrade name_pip update conda

随便推点

程序员能靠技术渡过中年危机吗?-程序员宅基地

文章浏览阅读190次。这是所有人都会经历的过程,有些已经平安渡过,有些还在惶恐不安。听听过来人的建议,走出自己的道路。编者按做 InfoQ 公众号这几年来,接触到的一线开发可谓数不胜数。这些人..._硬件编程也存在中年危机吗

oracle_sqlserver和mysql获取表外键的方法_MySQL,SQLSERVER,ORACLE获取数据库表名及字段名...-程序员宅基地

文章浏览阅读125次。1、MySQL获取表名:用“show tables”命令。在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来。其中“db”是指你的数据库的名称,比如说Tables_in_productdb。获取某个表的字段:用“desc tablename”命令。取得方式和上面类似。此外,还可用MySQL数据库系统表取得,在information_schema库中有系统中的一..._sqlserver通过外键名称获取外键字段

git stash 命令的使用_git stash show-程序员宅基地

文章浏览阅读497次。1、git stash save "save message"将工作区的文件暂存到暂存区,执行存储时,添加备注,方便查找,只有git stash 也可以,但查找时不方便识别。没有在git 版本控制中的文件,是不能被git stash 存起来的,需要先执行下git add 加到git版本控制中。2、git stash list查看stash了哪些存储3、git stash show显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git st_git stash show

AutoSAR软件架构基础(一)_autosar架构-程序员宅基地

文章浏览阅读5.1k次,点赞6次,收藏75次。随着汽车ECU控制器的逐步发展,汽车电子领域需求也日益复杂,在这一环境之下,整车厂和 零部件制造商均不得不考虑软件重复性,可裁剪性,质量保证等等问题,AutoSAR便是基于这些种种要求,由几大零部件提供商和主机厂联合提出的要求。统一解决方案针对问题。挑战:E/E系统复杂度快速增加目标:重复使用、不断测试功能代码爆炸式增长提高软件质量,降低开发成本硬件平台种类增多重复使用功能层软件开发流程和文件格式未统一重复使用基础层软件。_autosar架构

PL/SQL Developer 远程连接Oracle数据库_plsql ojdbc-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏4次。PL/SQL Developer远程连接Oracle数据库1、 配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安装了oracle的机上拷贝一个(tnsnames.ora文件)放在指定目录下,因为我已安装oracle,所以直接配置该文件。# tnsnames.ora Network Configuration File: D:\Oracle11..._plsql ojdbc

python—模块应用_python 模块应用-程序员宅基地

文章浏览阅读124次。模块应用中,选择选择python3.x版本生成二维码import qrcode img = qrcode.make(‘http://www.baidu.com‘) img.save(‘hello.png’)统计微信好友列表男女比例import itchat import random import timeitchat.auto_login(hotReload=Tr..._python 模块应用