Docker使用总结

Docker是一个更纯粹的虚拟机,具有广泛的应用常见,本文介绍了Docker一些简单操作

Warning

文章更适合Arch系系统,比如Arch/Manjaro等系统,其他系统可能会有所不同

1. Docker基本安装

  • Pacman 安装 Docker sudo pacman -S docker

  • 启动docker服务 sudo systemctl start docker

  • 重启docker服务 sudo systemctl restart docker

  • 查看docker服务的状态 sudo systemctl status docker

  • 设置docker开机启动服务 sudo systemctl enable docker

  • Docker更改镜像源

编辑 /etc/docker/daemon.json,添加如下网易镜像源

{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

2. Docker简单使用

2.1 镜像

  • 搜索镜像列表 docker search nginx
  • 下载一个镜像 docker pull 镜像名字
  • 使用镜像生成一个容器 docker run --name=my -it <镜像名> /bin/bash #-i: 交互式操作, -t: 终端 --name=容器名字[选加]
  • 查看所有镜像 docker images
  • 删除一个镜像
    • 方法1
      • 通过镜像ID删除镜像 docker rmi -f <镜像ID> #加上-f强制删除
    • 方法2
      • docker image rm <镜像名字>

2.2 容器

  • 查看运行的容器 docker ps -a
  • 停止一个容器 docker stop <容器ID>
  • 启动一个容器 docker start <容器ID>
  • 进入一个容器
    • 方法1.docker attach <容器ID> ## 退出后容器自动停止
    • 方法2.docker exec <容器ID> ## 退出后容器不停止
  • 删除一个容器
    • 步骤1. 查看容器,找到容器ID: docker ps -a
    • 步骤2. 通过容器ID删除容器 docker rmi -f <容器ID> #加上-f强制删除
  • 删除已经停止的容器(核弹命令慎用) docker container prune

2.3 常用

Tip

启动一个关闭的容器

通常我们使用镜像完之后会直接exit退出,但是我们以后想继续进入之前的容器应该怎么进入呢?

直接使用docker run -it <镜像名>肯定是不行的,因为这样又会生成一个新的容器

正确做法是通过docker ps -a查看自己以前容器的ID

然后使用docker start <容器ID> 启动容器

最终使用docker attatch <容器ID> 进入容器

3. Docker和主机之间传输文件

  1. 传送之前先运行Docker容器

  2. 使用docker ps命令查看你想要传输到容器的ID

  3. 向Docker中传送文件 docker cp 你的文件 容器ID:容器地址,比如docker cp /root/test.txt ecef8319d2c8:/root/

  4. Docker向主机传送文件 docker cp 容器ID:容器地址 你的文件,比如docker cp ecef8319d2c8:/root/ /root/test.txt

4. 非ROOT用户不用sudo直接执行docker命令

  1. 创建名为docker的用户组,如果之间有就会保存,可以忽略这个错误
sudo groupadd docker
  1. 将当前用户加入docker组
sudo usermod -aG docker 当前用户的名字
  1. 重启docker服务
sudo systemctl restart docker
  1. 添加访问和执行权限:
sudo chmod a+rw /var/run/docker.sock
  1. 操作完毕,验证一下,现在可以不用带sudo了

4. Docker保存修改后的镜像

我们运行的容器可能在镜像的基础上很多的修改 们希望保存起来,封装成一个新的镜像。 可以使用docker提供commit功能。

  1. 把容器打包成镜像 docker commit <容器ID> <新的镜像的名字>

其他参数 -a 提交作者的名字 -m 提交时的说明文字

  1. 查看镜像 docker images

这时候你就会发现,多了一个新的镜像

5. Docker登录

  • 登录 docker login
    • 可选参数-u 用户名 -p 密码
  • 登出 docker logout

6. 参考文献

没想到搜来搜去,还是菜鸟教材好啊~

https://www.runoob.com/docker/docker-container-usage.html

updatedupdated2022-03-162022-03-16