社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
本文是我快速入门实操docker的记录,用于作业和备忘,并不介绍基本概念。
关于docker的最好的学习文档是官方文档https://docs.docker.com/
其次可以参考每天5分钟玩转 Docker 容器技术
从https://docs.docker.com/install/处可以查询各个系统的docker的安装方式,我在ubuntu18.04上测试,安装教程见官网https://docs.docker.com/install/linux/docker-ce/ubuntu/
本次直接选择从仓库中can安装,过程为:
$ sudo apt-get update
$ sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io`
$ sudo docker run hello-world
注:如果没有配置用户权限,则docker命令应该在sudo下运行。
运行镜像
$ docker run -it ubuntu bash
参数-t让docker分配一个伪终端并绑定在容器的标准输入上,-i让容器的标准输入保持打开。
运行后会显示一个ubuntu容器的bash界面,可以在上面敲命令。
显示本地镜像库$ docker images
获取帮助
$ docker --help
以下是显示的管理命令,望文生义即可
Management Commands:
builder Manage builds
config Manage Docker configs
container Manage containers
context Manage contexts
engine Manage the docker engine
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
显示运行中的容器
$ docker ps
显示所有容器(包括已停止)
$ docker ps -a
拉取mysql镜像
$ sudo docker pull mysql:5.7
根据网络环境,可能会下载很长时间
下载完后截图:
Dockerfile介绍
Dockerfile 给出了docker的构建过程,如上述mysql的Dockerfile为https://github.com/docker-library/mysql/blob/master/5.7/Dockerfile
一般有如下字段:
FROM base_image
RUN shell_commands
ENV env_vars
VOLUME path
COPY source destination
ENTRYPOINT [“executable”,”parm1”, ”parm2”,…]
EXPOSE ports
CMD [“executable”,”parm1”, ”parm2”,…]
可以自行配置Dockerfile来构建自己需要的容器。
使用MySQL容器
sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
注意:如果出现端口占用的问题,可以更改监听端口或使用命令netstat -tunlp | grep 端口号
查看占用端口的进程pid,如netstat -tunlp | grep 3306
,查到占用端口的进程后杀进程即可。杀进程可以使用kill -9 [pid]
来解决,如进程1234占用端口则直接‘kill -9 1234’(此做法过于暴力,建议通过正常途径关闭进程)
另外,如果出现多次运行后提示docker名已被使用,要求改名或删除,可以通过docker ps -a
查看所有容器,然后通过·docker rm [container id]`来删除,container id不需要输入完整,只需要输入能够与其他container区别的长度即可。
运行mysql后结果;
启动 MySQL 客户端
docker run -it --net host mysql:5.7 "sh"
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!