2022
我们一起努力

ubuntu安装docker(ubuntu安装dockercompose)

目录:

  • 1、ubuntu怎么安装docker
  • 2、如何在Ubuntu系统下安装docker
  • 3、Docker指定安装版本Ubuntu、启动以及更改源
  • 4、ubuntu20.10 安装docker
  • 5、Ubuntu Docker 安装和使用
  • 6、如何在ubuntu 32位安装docker

ubuntu怎么安装docker

Ubuntu Docker 安装

Docker 支持以下的 Ubuntu 版本:

Ubuntu Precise 12.04 (LTS)

Ubuntu Trusty 14.04 (LTS)

Ubuntu Wily 15.10

其他更新的版本……

前提条件

Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。

通过 uname -r 命令查看你当前的内核版本

runoob@runoob:~$ uname -r

使用脚本安装 Docker

1、获取最新版本的 Docker 安装包

runoob@runoob:~$ wget -qO- | sh

输入当前用户的密码后,就会下载脚本并且安装Docker及依赖包。

安装完成后有个提示:

   If you would like to use Docker as a non-root user, you should now consider

    adding your user to the "docker" group with something like:

    sudo usermod -aG docker runoob

   Remember that you will have to log out and back in for this to take effect!

当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker runoob 命令,然后重新登陆,否则会有如下报错

2、启动docker 后台服务

runoob@runoob:~$ sudo service docker start

3、测试运行hello-world

runoob@runoob:~$ docker run hello-world

如何在Ubuntu系统下安装docker

Docker 的基本用法
在本节中,我将向您介绍 Docker 命令的常用选项。例如如何下载一个 docker image,打造一个容器,以及如何访问容器。
要创建一个新的容器,你应该选择一个基本 image 的操作系统,例如启动 Ubuntu 或者 CentOS 或其他系统。您可以搜索一个基本 image 使用 Docker 搜索命令:
docker search ubuntu
该命令将显示所有 ubuntu images,你可以自己尝试一下搜索 centos Images。现在我们现在 base image到我们的服务中,使用命令:
docker pull ubuntu现在,您可以通过使用命令来查看所有已下载的images:
docker imagesUbuntu 镜像从DockerHub/Docker Registry下载。下一步骤是创建从该镜像的容器。
要创建容器,可以使用docker create 或 docker run
docker create ubuntu:14.04
docker create 命令会创建一个新的容器,但不会启动它。所以现在你需要使用运行命令:
docker run -i -t ubuntu:14.04 /bin/bash
此命令将创建并运行一个基于 Ubuntu14.04 镜像的容器,容器内并运行一个命令/bin/bash,您将在容器内自动运行命令。当你输入 Exit 命令退出容器时,容器也是停止运行,如果你想容器在后台运行需要在命令后面添加 -d 参数。
docker run -i -t -d ubuntu:14.04 /bin/sh -c “while true; do echo hello world; sleep 1; done”
/bin/sh -c “while true; do echo hello world; sleep 1; done” this is bash script to echo “hello word” forever.
现在你可以看到容器在后台运行通过命令:
docker ps
如果你想从 bash 命令看日志结果,使用命令:
docker logs NAMES/ContainerID怎样在后台访问容器 shell?这个命令将会连接你的容器 shell:
docker exec -i -t NAMES/ContainerID你可以看到主机名和容器ID是相等的,这意味着你在容器shell内。当你在shell 上键入’exit`,会离开的shell,但容器仍在运行。
你会经常使用的另一个命令是:
docker stop NAME/ContainerID
这将停止容器而不将其删除,这样你就可以用命令重新启动它:
docker start NAME/ContainerID
如果你想删除的容器,先停止它,然后用命令将其删除:
docker rm NAME/ContainerID

Docker指定安装版本Ubuntu、启动以及更改源

使用Docker指定安装13.10版本的Ubuntu镜像,并运行:

最近遇到docker run不起来Ubuntu的镜像,后面才发现是自己少加了-it这个参数,运行其他的mysql之类的镜像都没需要这个参数就起来了,不太清楚为什么。

查询了一下docker run的参数也没找出来原因,还以为是-it的还有什么功能我不知道。。。。

运行起来Ubuntu的容器之后又遇到一个问题:没办法在Ubuntu里面安装任何软件,连apt-get update都没办法运行,因为:

到此就可以愉快正常地使用13.10的Ubuntu了。

关于这个老版本的Ubuntu的更新源的问题,只需要把saucy换成对应版本Ubuntu的名字就行了。

比如11.04的Ubuntu叫做代号:"Natty Narwhal" ,然后那里就可以将saucy换成natty

最近一直在用docker,加深了对docker的理解,虽然还没到写出很完美的dockerfile的那种地步,但是对Docker是什么比当初有了更深一点的理解,最起码镜像和容器概念已经清楚了,补充几条命令叭。

ubuntu20.10 安装docker

运行操作系统: 

docker01:/etc/apt$ cat /etc/issue

Ubuntu 20.10 \n \l

参考文档:docker官网文档

Install Docker Engine on Ubuntu | Docker Documentation

一、安装docker

安装依赖:

docker01:/etc/apt$ sudo apt-get install apt-transport-https ca-certificates curl gnupg l**-release

添加信任的GPG key

@docker01:~$ curl -fsSL  |sudo gpg  --dearmor  -o  /usr/share/keyrings/docker-archive-keyring.gpg

添加docker的镜像源

docker01:/etc/apt$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]   $(l**_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list /dev/null

docker01:/etc/apt$ sudo apt-get update

安装docker

docker01:/etc/apt$ sudo apt-get install docker-ce docker-ce-cli containerd.io

添加docker服务开机自启动,并启动docker

docker01:/etc/apt$ sudo systemctl enable docker

查看docker 服务状态

docker01:/etc/apt$ sudo systemctl status docker

● docker.service - Docker Application Container Engine

    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

    Active: active (running) since Wed 2021-09-08 22:24:13 CST; 4min 53s ago

TriggeredBy: ● docker.socket

      Docs:

  Main PID: 9398 (dockerd)

      Tasks: 8

    Memory: 28.8M

    CGroup: /system.slice/docker.service

            └─9398 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.197566481+08:00" level=warning msg="Your kernel does not support CPU realtime scheduler"

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.197643255+08:00" level=warning msg="Your kernel does not support cgroup blkio weight"

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.197658253+08:00" level=warning msg="Your kernel does not support cgroup blkio weight_device"

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.198185693+08:00" level=info msg="Loading containers: start."

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.436407447+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Dae

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.531857430+08:00" level=info msg="Loading containers: done."

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.616001469+08:00" level=info msg="Docker daemon" commit=75249d8 graphdriver(s)=overlay2 version=20.10.8

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.616363666+08:00" level=info msg="Daemon has completed initialization"

Sep 08 22:24:13 docker01 systemd[1]: Started Docker Application Container Engine.

Sep 08 22:24:13 docker01 dockerd[9398]: time="2021-09-08T22:24:13.641779103+08:00" level=info msg="API listen on /run/docker.sock"

Ubuntu Docker 安装和使用

Docker 划分为CE 和EE。CE 即社区版(免费,支持周期三个月),EE 即企业版,强调安全,付费使用。

在Ubuntu系统中安装较为简单,官方提供了脚本供我们进行安装。

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE 的Edge版本安装在系统中。

启动Docker CE

建立docker 用户组

默认情况下,docker 命令会使用Unix socket 与Docker 引擎通讯。而只有root 用户和docker 组的用户才可以访问Docker 引擎的Unix socket。出于安全考虑,一般Ubuntu系统上不会直接使用root 用户。因此,更好地做法是将需要使用docker 的用户加入docker用户组。

注销当前用户,重新登录Ubuntu,输入docker info,此时可以直接出现信息。

配置国内镜像加速

在/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

重新启动服务

测试

我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:

各个参数解析:

-t: 在新容器内指定一个伪终端或终端。

-i: 允许你对容器内的标准输入 (STDIN) 进行交互。

我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。

使用以下命令创建一个以进程方式运行的容器

二、使用Docker安装 MySQL

用 docker search mysql 命令来查看可用版本:

2、拉取 MySQL 镜像

这里我们拉取官方的最新版本的镜像:

3、查看本地镜像

使用以下命令来查看是否已安装了 mysql:

4、运行容器

安装完成后,我们可以使用以下命令来运行 mysql 容器:

大小写敏感

参数说明:

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。

MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

使用docker exec进入Docker容器

从容器里面拷文件到宿主机

docker cp mysql-5.7:/etc/mysql/ /home

从宿主机拷文件到容器里面

docker cp /home/s/my.cnf mysql-5.7:/etc/mysql/

大小写敏感修改

/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务 0敏感 1不敏感

开启远程连接

5、安装成功

通过 docker ps 命令查看是否安装成功:

6、连接

mysql -u root -P3308 -h 127.0.0.1 -p

如何在ubuntu 32位安装docker

1、更新Ubuntu内核

使用如下命令行更新内核至3.8.0-25

sudo apt-get install linux-image-3.8.0-25-generic

sudo apt-get install linux-headers-3.8.0-25-generic

完成后重启电脑,通过命令 “uname -r” 来查看内核是否成功更新。

2、安装lxc-docker

root@ubuntu: sudo apt-get install software-properties-common #增加 add-apt-repository 命令

root@ubuntu: sudo apt-get install python-software-properties

root@ubuntu: sudo add-apt-repository ppa:dotcloud/lxc-docker #增加一个ppa源,如:ppa:user/ppa-name

root@ubuntu: sudo apt-get update #更新系统

root@ubuntu: sudo apt-get install lxc-docker

3、测试doctor是否安装成功

root@ubuntu:~# docker #出现如下信息表示docker安装成功

Usage: docker [OPTIONS] COMMAND [arg...]

-H=[tcp://127.0.0.1:4243]: tcp://host:port to bind/connect to or unix://path/to/socket touse

A self-sufficient runtime for linux containers.

...

4、Hello World

4.1、下载官方ubuntu image

linjiqin@ubuntu:~$ sudo docker pull ubuntu #pull命令需要到国外的镜像仓库,拉取镜像,因为GFW的关系,拉取失败的可能性很大

4.2、运行hello world

linjiqin@ubuntu:~$ sudo docker run ubuntu /bin/echo hello world

5、docker常用命令

5.1、docker三种命令运行模式

docker有三种命令运行的方式:短暂方式、交互方式、daemon方式。

a、短暂方式:就是刚刚的那个”hello world”,命令执行完后,container就终止了,不过并没有消失,可以用 sudo docker ps -a 看一下所有的container,第一个就是刚刚执行过的container,可以再次执行一遍:

linjiqin@ubuntu:~$ sudo docker start container_id

不过这次看不到”hello world”了,只能看到ID,用logs命令才能看得到:

linjiqin@ubuntu:~$ sudo docker logs container_id

可以看到两个”hello world”,因为这个container运行了两次。

b、交互方式

linjiqin@ubuntu:~$ sudo docker run -i -t image_name /bin/bash #image_name为docker镜像名称

c、daemon方式

即让软件作为长时间服务运行,这就是SAAS啊!

例如,一个无限循环打印的脚本(替换为memcached、apache等,操作方法仍然不变!):

linjiqin@ubuntu:~$ CONTAINER_ID=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done")

在container外面查看它的输出

linjiqin@ubuntu:~$ sudo docker logs $CONTAINER_ID

或者连接上容器实时查看

linjiqin@ubuntu:~$ sudo docker attach $CONTAINER_ID

终止容器

linjiqin@ubuntu:~$ sudo docker stop $CONTAINER_ID

linjiqin@ubuntu:~$ sudo docker ps #看一下,已经没了

5.2、docker ps命令

linjiqin@ubuntu:~$ sudo docker ps #列出当前所有正在运行的container

linjiqin@ubuntu:~$ sudo docker ps -l #列出最近一次启动的,且正在运行的container

linjiqin@ubuntu:~$ sudo docker ps -a #列出所有的container

注意:

a、其他用法请参考 sudo docker ps -h

b、还有一种方式可以让程序在daemon模式下运行,就是在Dockerfile里设置USER为daemon

5.3、docker export命令

linjiqin@ubuntu:~$ container_id=`docker run -d image_name ls`

linjiqin@ubuntu:~$ docker export $container_id image.tgz

5.4、docker import命令

linjiqin@ubuntu:~$ cat image.tgz | sudo docker import - simple_dev #simple_dev为自定义的镜像名称

5.5、docker port命令

linjiqin@ubuntu:~$ docker run -p 80:8080 image cmd #映射容器的8080端口到宿主机的80端口

5.6、删除容器

5.6.1、删除所有容器

linjiqin@ubuntu:~$ sudo docker rm `sudo docker ps -a -q`

5.6.1、删除具体某个容器

linjiqin@ubuntu:~$ sudo docker rm $CONTAINER_ID

5.7、docker命令快速参考

linjiqin@ubuntu:~$ sudo docker images #查看本地镜像

linjiqin@ubuntu:~$ sudo docker attach $CONTAINER_ID #启动一个已存在的docker实例

linjiqin@ubuntu:~$ sudo docker stop $CONTAINER_ID #停止docker实例

linjiqin@ubuntu:~$ sudo docker logs $CONTAINER_ID #查看docker实例运行日志,确保正常运行

linjiqin@ubuntu:~$ sudo docker inspect $CONTAINER_ID #查看container的实例属性,比如ip等等

sudo docker run -t -i -v /home/linjiqin/dev/docker:/home/mycontainer:rw -p 8000:8000 mydocker /bin/bash

写在前面,运行我们的镜像的命令使用上面的为参考,这样会挂载本地文件夹,并且会映射container的8000端口到宿主机的8000端口

/home/linjiqin/dev/docker为要挂载的本地文件夹,需提前创建

/home/mycontainer为docker映射路径,执行上面命令会帮我们创建

赞(0)
文章名称:《ubuntu安装docker(ubuntu安装dockercompose)》
文章链接:https://www.fzvps.com/186413.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!