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 <镜像名字>
- 方法1
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和主机之间传输文件
-
传送之前先运行Docker容器
-
使用
docker ps
命令查看你想要传输到容器的ID -
向Docker中传送文件
docker cp 你的文件 容器ID:容器地址
,比如docker cp /root/test.txt ecef8319d2c8:/root/
-
Docker向主机传送文件
docker cp 容器ID:容器地址 你的文件
,比如docker cp ecef8319d2c8:/root/ /root/test.txt
4. 非ROOT用户不用sudo直接执行docker命令
- 创建名为docker的用户组,如果之间有就会保存,可以忽略这个错误
sudo groupadd docker
- 将当前用户加入docker组
sudo usermod -aG docker 当前用户的名字
- 重启docker服务
sudo systemctl restart docker
- 添加访问和执行权限:
sudo chmod a+rw /var/run/docker.sock
- 操作完毕,验证一下,现在可以不用带sudo了
4. Docker保存修改后的镜像
我们运行的容器可能在镜像的基础上很多的修改 们希望保存起来,封装成一个新的镜像。 可以使用docker提供commit功能。
把容器打包成镜像
docker commit <容器ID> <新的镜像的名字>
其他参数 -a 提交作者的名字 -m 提交时的说明文字
查看镜像
docker images
这时候你就会发现,多了一个新的镜像
5. Docker登录
登录
docker login- 可选参数-u 用户名 -p 密码
登出
docker logout
6. 参考文献
没想到搜来搜去,还是菜鸟教材好啊~