赞
踩
https://mirrors.huaweicloud.com/ubuntu-releases/
- # 第一步、卸载旧版本docker
- sudo apt-get remove docker docker-engine docker.io containerd runc
-
- # 第二步、更新及安装软件
- lu@host:~$ curl -fsSL https://get.docker.com -o get-docker.sh
- lu@host:~$ sudo sh get-docker.sh
- # Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
- + sh -c apt-get update -qq >/dev/null
- + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
- + sh -c install -m 0755 -d /etc/apt/keyrings
- + sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
- gpg: WARNING: unsafe ownership on homedir '/home/lu/.gnupg'
- + sh -c chmod a+r /etc/apt/keyrings/docker.gpg
- + sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu bionic stable" > /etc/apt/sources.list.d/docker.list
- + sh -c apt-get update -qq >/dev/null
- + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
- + sh -c docker version
- Client: Docker Engine - Community
- Version: 24.0.2
- API version: 1.43
- Go version: go1.20.4
- Git commit: cb74dfc
- Built: Thu May 25 21:52:13 2023
- OS/Arch: linux/amd64
- Context: default
-
- Server: Docker Engine - Community
- Engine:
- Version: 24.0.2
- API version: 1.43 (minimum version 1.12)
- Go version: go1.20.4
- Git commit: 659604f
- Built: Thu May 25 21:52:13 2023
- OS/Arch: linux/amd64
- Experimental: false
- containerd:
- Version: 1.6.21
- GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
- runc:
- Version: 1.1.7
- GitCommit: v1.1.7-0-g860f061
- docker-init:
- Version: 0.19.0
- GitCommit: de40ad0
-
- ================================================================================
-
- To run Docker as a non-privileged user, consider setting up the
- Docker daemon in rootless mode for your user:
-
- dockerd-rootless-setuptool.sh install
-
- Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
-
-
- To run the Docker daemon as a fully privileged service, but granting non-root
- users access, refer to https://docs.docker.com/go/daemon-access/
-
- WARNING: Access to the remote API on a privileged Docker daemon is equivalent
- to root access on the host. Refer to the 'Docker daemon attack surface'
- documentation for details: https://docs.docker.com/go/attack-surface/
-
- ================================================================================
-
- lu@host:~$
-
- # 第三步、查看docker是否安装完成
- lu@host:~$ docker -v
- Docker version 24.0.2, build cb74dfc
-
- # 第四步、查看是否成功启动docker
- lu@host:~$ systemctl status docker
- ● docker.service - Docker Application Container Engine
- Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
- Active: active (running) since Sat 2024-05-11 15:17:44 CST; 1min 39s ago
- Docs: https://docs.docker.com
- Main PID: 15493 (dockerd)
- Tasks: 10
- CGroup: /system.slice/docker.service
- └─15493 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
-
- 5月 11 15:17:43 host systemd[1]: Starting Docker Application Container Engine...
- 5月 11 15:17:43 host dockerd[15493]: time="2024-05-11T15:17:43.435309035+08:00" level=info msg="Starting up"
- 5月 11 15:17:43 host dockerd[15493]: time="2024-05-11T15:17:43.441754095+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run
- 5月 11 15:17:43 host dockerd[15493]: time="2024-05-11T15:17:43.640102836+08:00" level=info msg="Loading containers: start."
- 5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.219270950+08:00" level=info msg="Loading containers: done."
- 5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.461539976+08:00" level=warning msg="WARNING: No swap limit support"
- 5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.461699515+08:00" level=info msg="Docker daemon" commit=659604f graphdriver=overlay2 version=24.0.2
- 5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.462969664+08:00" level=info msg="Daemon has completed initialization"
- 5月 11 15:17:44 host systemd[1]: Started Docker Application Container Engine.
- 5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.575567013+08:00" level=info msg="API listen on /run/docker.sock"
- lu@host:~$
- docker images
- docker images -q # 查看所有镜像id
docker search 镜像名称
- docker ps # 查看正在运行的容器
- docker ps -a # 查看所有容器
- docker pull [images]:[version]
-
- # 例如:docker pull ubuntu:14.04
docker run 参数
- sudo docker run -it ubuntu:14.04 bash
-
- # 这个命令会启动一个Ubuntu容器,并为您提供一个shell 来交互,shell 终端退出则容器会关闭。
- sudo docker run -d --name my_ubuntu ubuntu:14:04
-
- # 这个命令会以守护进程模式(-d)启动一个Ubuntu容器,并将其命名为 my_ubuntu。
- # 关闭终端容器不会退出,要想进入交互模式需要docker exec指令
例子:
- lu@host:~$ cat run_docker.sh
- #/bin/bash
-
- export MY_CONTAINER="ubuntu14.04-`whoami`"
- num=`sudo docker ps -a|grep -w "$MY_CONTAINER$"|wc -l`
- echo $num $MY_CONTAINER
- if [ 0 -eq $num ];then
- # --net=host:使容器共享宿主机的网络接口。--ipc=host:使容器可以访问宿主机的 IPC 资源。--pid=host : 使容器可以访问宿主机的进程。
- # --privileged:给予容器扩展的权限,允许容器访问宿主机上的所有设备,并运行一些通常被禁止的操作.
- sudo docker run \
- --net=host --ipc=host --pid=host \
- -it --privileged --name $MY_CONTAINER \
- -v $PWD:/home/share ubuntu:14.04 bash
- else
- sudo docker start $MY_CONTAINER
- sudo docker exec -ti $MY_CONTAINER /bin/bash
- fi
- lu@host:~$
-
-
参数:
--net=host
:使容器使用宿主机的网络命名空间,这意味着容器将共享宿主机的网络接口。
--ipc=host
:使容器使用宿主机的 IPC 命名空间,这意味着容器可以访问宿主机的 IPC 资源。
--pid=host
:使容器使用宿主机的 PID 命名空间,这意味着容器可以访问宿主机的进程。
-it
:以交互模式(-i
)运行容器,并为容器分配一个伪终端(-t
)。
--privileged
:给予容器扩展的权限,允许容器访问宿主机上的所有设备,并运行一些通常被禁止的操作。
--name $MY_CONTAINER
:指定容器的名称为环境变量MY_CONTAINER
的值。
-v $PWD:/home/lu
:将当前工作目录($PWD
)挂载到容器中的/home/lu
目录。这允许您从宿主机访问和修改容器中的文件。
ubuntu:14.04
:使用ubuntu:14.04
Docker 镜像来创建容器。这个镜像是一个基于 Ubuntu 14.04 的环境。
bash
:容器启动后执行的命令,这里是一个 Bash shell,允许您在容器中执行命令。
- # 通过docker start命令来启动已部署的容器服务。
- docker start 容器名称
- # 容器启动后,进入终端交互模式
- docker exec 参数
- # 非交互模式下,通过docker stop命令来停止已部署的容器服务。
- docker stop 容器名称
-
-
- # 如果创建容器的同时进入到交互模式下,通过exit退出终端来停止容器
-
-
- # 如果是使用 docker exec进入的交互模式:
- # 那么退出容器只需要关闭终端或输入exit 命令不会关闭容器,必须通过docker stop命令来停止。
docker rm 容器名称
docker rmi [imageID]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。