docker是个好东西,但是每次用到某些docker命令的时候又要跑去搜搜搜
干脆自己写个博客,把自己常用的docker命令收集起来方便用。

运行环境 Runtime environment

1
2
3
操作系统: ubuntu18.04  
IDE: JetBrains Pycharm 2019.2.4 x64
语言: Python 3.7.4

安装和卸载

卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:

1
sudo apt-get remove docker docker-engine docker.io containerd runc

安装docker
我比较喜欢图省事233,使用docker官方提供的脚本安装!

1
2
3
4
5
6
7
8
sudo wget -qO- https://get.docker.com/ | bash
# 如果上面的不行,执行下面两句
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 安装成功执行下面语句,如果有类似回显,说明安装成功
docker --version
Docker version 18.06.1-ce, build e68fc7a

如果当前用户不是root,或你想让非root用户也能把玩docker的话,需要执行添加一下docker用户组:

1
2
3
4
# 建立 docker 组
sudo groupadd docker
# 将当前用户加入 docker 组:
udo usermod -aG docker $USER

退出当前终端并重新登录,然后输入

docker info

如果噼里啪啦出来一大堆,没有报错就成功了。

配置加速

docker直接拉取的速度老慢了,很烦人,所以配置一些加速服务器来提高拉去速度。

vim /etc/docker/daemon.json

输入如下内容:

1
2
3
4
5
6
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

配置完成后,保存退出vim,并且重新启动服务

sudo systemctl daemon-reload
sudo systemctl restart docker

到这里配置加速就搞定了。

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# docker 信息
docker info

# docker 镜像
docker images
# 删除docker镜像
docker rmi [images id]

# docker 进程
docker ps

# docker 运行
docker run [镜像名称]
# 例如:
docker run --name='localScarpyd6800' -itd -p 6800:6800 --restart=always raxianch/scrapyd

--name:给被运行的容器设置名字.

-it: -t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开.

-itd: 多个d是让docker绑定一个伪终端和保持打开状态且在后台运行.

-p: 端口映射
# 例如:将nginx的80端口映射到宿主机的800端口上
docker run -d -it -p 800:80 nginx

--restart:--restart=always表示自动重启,默认值为--restart=no。
如果使用always关闭该容器时需要docker update --restart=no [容器id]&&docker stop [容器id]

--rm: 表示关闭容器时,删除该容器。它不能和--restart=always同时使用。

# 进入已经运行得容器内部
docker exec -it 5be7dae2d7df /bin/bash

# 停止容器
docker stop

# 复制宿主机文件到docker容器中
docker cp [本地目录/文件] [容器ID/name]:[容器内的目录/文件]
例如:docker cp ./jdScrapy localScarpyd6800:tmp/jdScrapy

# 复制docke容器中的文件到宿主机
docker cp [容器ID/name]:[容器内的目录/文件] [本地目录/文件]
例如:docker cp localScarpyd6800:tmp/jdScrapy ./jdScrapy

总结

没啥总结,docker还是刚刚开始去用,深刻的理解还是没有的233333.
只是把自己常用命令放一起方便用。