docker学习及glang部署
docker启动
sudo systemctl start docker
注意:该命令无论在那个目录下执行都能启动docker
运行一个容器
我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
docker run -i -t ubuntu:15.10 /bin/bash
各个参数解析:
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
- ubuntu:15.10:代表要使用的镜像,如果本地没有他会自动去下载
- /bin/bash:代表执行该镜像的格式
退出容器
exit or CTRL+D
查看运行中的容器
docker ps
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcpudp)。
NAMES: 自动分配的容器名称。
查看容器内的标准输出:
docker logs 容器ID
停止容器
docker stop 容器ID
重启容器
docker restart 容器ID
Docker 客户端
启动已停止运行的容器
查看所有容器
docker ps -a
注意:这里面的容器ID与docker ps里面的容器ID不同
启动一个已经停止的镜像
docker start 容器ID
注意:这里使用的容器ID与docker ps -a里面的容器ID要保持一致
进入容器
注意: 如果从这个容器退出,会导致容器的停止。
docker attach 容器ID
注意: 如果从这个容器退出,不会导致容器的停止,这就是为什么推荐大家使用 docker exec 的原因。
更多参数说明请使用 docker exec --help 命令查看。
docker exec -it 容器ID /bin/bash
导出容器到本地文件
如果要导出本地某个容器,可以使用 docker export 命令。
注意:ubuntu.tar为本地压缩文件,该命令会把一个容器压缩成一个文件
docker export 容器ID > ubuntu.tar
删除容器
删除容器使用 docker rm 命令:
(本人实际测试经验,自己感觉挺麻烦的)
**
先使用docker ps -a命令查看全部容器
docker ps -a
然后使用下面命命令删除,ID为docker ps -a里的ID
docker rm 容器ID
然后使用下面的命令会发现还是有ubuntu:15.10
docker images
接下来使用下面命令删除,这里的ID为docker images出现的ID
docker rmi -f 容器ID
然后会发现docker images里的ubuntu:15.10被删掉了
清理所有处于终止状态下的容器
docker container prune
docker镜像使用
我们可以使用 docker images 来列出本地主机上的镜像。
docker images
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
各个选项说明:
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
获取一个新的镜像
我们可以使用 docker pull 命令来下载一个新的镜像。
Crunoob@runoob:~$ docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
6599cadaf950: Pull complete
23eda618d451: Pull complete
f0be3084efe9: Pull complete
52de432f084b: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Status: Downloaded newer image for ubuntu:13.10
查找镜像
docker search httpd
其他命令
请参考菜鸟教程菜鸟教程docker
使用docker部署golang的镜像
这里推荐去看隔壁的博客:“怎样将服务部署到Docker”(开阳),在这里我只做一下补充。
交叉编译
这里最好去找到自己golang文件的目录,在红线的地方输入cmd按回车,打开cmd.
然后输入三条指令,会自动生成二进制文件。注意:生成的文件不能带.exe后缀,如果带则说明操作不对,删掉重新操作。
set GOOS=linux
set GOARCH=amd64
go build .