docker 简单使用

一、 docker 安装二、docker 使用1. docker pull 拉取镜像2. docker run 后台运行3. docker ps 查看容器运行状态4. docker exec 进入容器5. exit 退出容器6. docker restar 重启容器7. docker stop 停止运行容器8. docker stop 启动容器9. docker stop 删除容器10. docker cp 复制文件(夹)进出容器

三、Dockfile 简单使用1. 准备2. 开始构建镜像3. 使用自定义镜像4. 删除自定义的镜像

目前我使用docker的场景的并不多,主要用来:

隔离本机的系统及软件环境,防止编译或者部署操作影响到本机快速部署及配置软件环境不拖后接下来的工作

操作系统: Linux (ubuntu,debian,kali)

一、 docker 安装

sudo apt install docker.io

# 将要运行docker的用户加入到docker组,否则每次运行都要加sudo

sudo adduser ${USER} docker

sudo systemctl restart docker

# 重启以启用配置

sudo reboot

二、docker 使用

1. docker pull 拉取镜像

#自己决定版本 ubuntu:18.04 也可以

docker pull ubuntu:22.04

22.04: Pulling from library/ubuntu

bccd10f490ab: Pull complete

Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e

Status: Downloaded newer image for ubuntu:22.04

docker.io/library/ubuntu:22.04

2. docker run 后台运行

# 后台运行一个ubuntu镜像

docker run -itd --name myubuntu ubuntu /bin/bash

Unable to find image 'ubuntu:latest' locally

latest: Pulling from library/ubuntu

Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e

Status: Downloaded newer image for ubuntu:latest

80e76ce3c7d2099ecb153b441f813a4b6b59b56a837797ce7cc502b5ce9b883e

3. docker ps 查看容器运行状态

# 后台运行一个ubuntu镜像

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

80e76ce3c7d2 ubuntu "/bin/bash" About a minute ago Up About a minute myubuntu

4. docker exec 进入容器

使用 exec 选项,退出容器后,容器不会停止 若使用 docker attach myubunru 进入容器,退出容器后,容器会停止

# 使用容器的ID或者名字都可以

# docker exec -it 80e76ce3c7d2 /bin/bash

docker exec -it myubuntu /bin/bash

root@80e76ce3c7d2:/# ls

bin dev home lib32 libx32 mnt proc run srv tmp var

boot etc lib lib64 media opt root sbin sys usr

root@80e76ce3c7d2:/# cd

root@80e76ce3c7d2:~# ls

root@80e76ce3c7d2:~#

5. exit 退出容器

直接使用Ctrl + "d" 也可以

exit

6. docker restar 重启容器

docker restart myubuntu

7. docker stop 停止运行容器

docker stop myubuntu

8. docker stop 启动容器

停止可能会花费一些时间

docker stop myubuntu

9. docker stop 删除容器

删除之前需要先停止,否则会报错误

docker stop myubuntu

docker rm myubuntu

10. docker cp 复制文件(夹)进出容器

复制到容器的具体那个路径自行选择 不一定要复制到根目录:myubuntu:/,如myubuntu:/root

# 复制进入容器

docker cp text.txt myubuntu:/

进入容器查看 test.log 在不在

docker exec -it myubuntu /bin/bash

# 从容器复制出来

docker cp myubuntu:/test.log .

三、Dockfile 简单使用

前面使用的是 DockerHub 中的 ubuntu 镜像,现在我们自己制作一个自定义的 ubuntu 镜像,里面预置了我们需要的软件包和一些其他的操作:

FROM 指定基础镜像,用于后续的指令构建。RUN 在构建过程中在镜像中执行命令COPY 将文件或目录复制到镜像中

1. 准备

mkdir docker

cd docker

在创建的 docker 目录创建两个文件Dockerfile,test.log test.log 只是为了使用 COPY 指令,将当前目录的文件复制到容器中,并不是必须的

#Dockerfile

FROM ubuntu:22.04

RUN apt-get update -y \

&& apt-get install -y \

curl \

python3 \

git \

wget

COPY ./test.log /

# 内容随意,只是为了复制

touch test.log

2. 开始构建镜像

docker build -t myubuntu_image .

3. 使用自定义镜像

docker run -itd --name myubuntu myubuntu_image /bin/bash

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

1682e4914501 myubuntu_image "/bin/bash" 42 minutes ago Up 1 minutes myubuntu

进入容器查看,里面已经有了我们复制进来的 test.log 并且预先安装了软件包: git,wget,python3,curl

docker exec -it myubuntu /bin/bash

root@1682e4914501:/# ls

bin dev home lib32 libx32 mnt proc run srv test.log usr

boot etc lib lib64 media opt root sbin sys tmp var

4. 删除自定义的镜像

docker stop myubuntu

docker rm myubuntu

docker rmi myubuntu_image

Untagged: myubuntu_image:latest

Deleted: sha256:2127b529978e4ba134be19464c53d08bd01b822592db5fcaac1a0da014b13c26

Deleted: sha256:b561c76ca42a2e699693af790f2ba3638e7c1ec358a8b150465cb7b09c2ee2bb

Deleted: sha256:d562f8ca3124f08ffc952a27ed85c45b3ff887d48a051415628af667141a1630

Deleted: sha256:56e82a00763a8f08487f56f3eded2d5acbc6f755b5e7efbf2fe7722a6c449e33

至此,docker简单使用已完成 能力一般,水平有限,希望能帮到您

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: