# 添加docker权限给当前用户(可以使docker命令免sudo)
1. 添加 docker group
sunchang@sunchang-PC:~$ sudo groupadd docker
groupadd:“docker”组已存在
2. 将用户添加到docker组
sunchang@sunchang-PC:~$ sudo gpasswd -a ${USER} docker
正在将用户“sunchang”加入到“docker”组中
3. 重启docker服务
sunchang@sunchang-PC:~$ sudo service docker restart
4. 查看用户组及成员
sunchang@sunchang-PC:~$ cat /etc/group | grep docker
docker:x:997:sunchang
运行一个HelloWorld
docker run ubuntu echo "Hello World"
解释: 使用ubuntu 镜像创建一个容器,并在这个容器里运行命令: echo "Hello World"
让运行的容器实现对话能力
docker run -i -t ubuntu /bin/bash
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。 可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。
启动容器(后台模式)
使用以下命令创建一个以进程方式运行的容器
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
这个时候,只是输出了一个id,这个是容器的id。
如何将本地目录映射到宿主机里?
docker run 参数后面添加 -v /path/to/local:/path/to/target,注意的是windows系统需要按如下格式写:
docker run -p 80:80 -v /D/docker/web:/usr/share/nginx/html/web -d nginx
-p 映射端口号,如果要映射多个端口号,可以写多个 -p。如:
docker run -p 80:80 -p:443:443 -d nginx
-d 在后台运行
vim编辑文件
不是所有的容器都自带vim,像nginx的容器默认是没有vim的。这个时候需要手动安装:
apt-get update
apt-get install vim
这样就可以啦~
查看正在运行的容器
docker ps
CONTAINER ID IMAGE COMMAND ...
5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running 或 Up(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
查看容器日志
docker logs 2b1b7a428627
停止容器
docker stop amazing_cori
重启容器
docker stop amazing_cori
进入容器
docker attach 1e560fca3906
Microsoft Windows [版本 10.0.19042.804]
(c) 2020 Microsoft Corporation. 保留所有权利。
C:\Users\hz21087108>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b07524256a1 ubuntu "bash" 22 hours ago Up 22 hours vigorous_banach
C:\Users\hz21087108>docker attach 8b07524256a1
root@8b07524256a1:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
root@8b07524256a1:/#
注意: 如果从这个容器退出,会导致这个容器停止(Ctl + D)
exec 命令
使用容器执行命令
docker exec -it 243c32535da7 bash
注意: 如果从这个容器退出,容器不会停止。所以进入容器的时候要使用exec
而不是 attach
。
删除容器
docker rm -f 1e560fca3906
-f: --force
的缩写,强制删除。
清理掉所有处于终止状态的容器
docker container prune
C:\Users\hz21087108>docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
8b07524256a17d161e34d3c4577c3d59513e1d45028ac942e763170140b72867
a61ede1df2433c977135f84fb5f5616040c8be1d1666958f8fe61164e38764ab
c866412441ac925395e7a874d28b0e7ff1578b13ca905b657b7dc2f71b120330
cc2bf6cb885b24df037e3022a8e27bd7682cdcd38a5b8d62f5b0b7bc06064a64
c0e18126807e507b9a46107cdebbcf851795c2a2a32016d1a37bbfac0f31ee8b
c75514cf5a47ac346de4e912151b761daf50f5494c5412d63a748c94cbf47128
f34c9768ab1721aa297f3917280b6b9646cfe1655145c6a54bcf6684ae80ef0d
Total reclaimed space: 2.906kB
C:\Users\hz21087108>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
C:\Users\hz21087108>
查看web容器信息
docker ps
docker ps -a
-a
是显示全部容器,包括不在运行中的
查看指定容器的端口映射
docker port bf08b7f2cd89
5000/tcp -> 0.0.0.0:5000
查看web应用程序的日志
docker logs [容器ID或者名字]
可以查看容器的标准输出, -f
参数可以让容器log标准输出。