docker 简单使用

11 篇文章 0 订阅

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

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

操作系统: 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 目录创建两个文件Dockerfiletest.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简单使用已完成
能力一般,水平有限,希望能帮到您

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值