ubuntu使用docker

8 篇文章 0 订阅

什么是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
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值